問題タブ [bind-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1503 参照

oracle - バインド変数を使用すると、Oracle Explain Plan が異なります

システムが実行するクエリの説明プランを生成するときに、フィルターをパラメーター化された形式 (例: "somecolumn=:param1") のままにしておくと、パラメーターを実際の値 (例: "somecolumn") に置き換えると説明プランが異なることに気付きました。 ='real_value'). 私の場合、データベース パラメーターを使用した説明計画は、インデックスを無視して終了し、大量のテーブルでフル テーブル スキャンを実行して、高コスト、バイト、および推定行につながります。

プランが違うのはなぜ?システムがバインド パラメータを使用するため、Oracle は望ましくない計画を使用していますか?

0 投票する
2 に答える
114 参照

oracle - 同じテーブル内の別の列に値が挿入/更新/削除されたときに、列に値が自動的に反映されるようにする方法は?

2 つのテーブルを作成しました: INFORMATIONAND FEED

TOT_REMここで、 との挿入/削除/更新に基づいて、へ/から値を挿入/更新/削除する必要がS_AMOUNTありTOT_AMOUNTます。

サンプルの内容は次のとおりです。

&の助けを借りて、 でTOT_REM実行された更新/挿入/削除操作に基づいて、属性に値を自動的に挿入する必要があります。S_AMOUNTTOT_AMOUNTS_AMOUNT

いつでも、TOT_REM を 0 未満にすることはできません。また、TOT_REM は自動的に挿入/削除/更新する必要があります。

したがって、2 番目のタプル (1,10,'13.10.2010',80) を削除すると、反映された状態は次のようにBR_FEEDなります。

表示に失敗するトリガーを作成しました

トリガーのコードは次のとおりです。

質問:

  1. このアプローチは欠陥がありますか? この方法では、私が望むものを達成することはできませんか?[オプション]
  2. ここにビューを表示する範囲はありますか? 私はその線で考えることができません!おそらく、経験不足...[オプション]
  3. TOT_REM 値を自動的に反映できるようにするためのより良いアプローチはありますか?[回答必須]
0 投票する
3 に答える
3105 参照

oracle - LIKE % 演算子でバインド変数を使用する

私の PL/SQL には、バインド変数を使用したこの大きな動的 SQL があります。DBMS_SQL パッケージを使用して、生成されたクエリをバインドおよび実行します。

特定の基準に基づいて、WHERE 節が動的 SQL に追加されます。「in」または「=」を使用してバインド変数に一致させると、すべて正常に機能し、結果が非​​常に高速に返されます。

例:

(servedparty = :bv_ or servedpartyimsi = :bv_)

ただし、次のことを行うと:

12345679890% のような値を指定すると、クエリに非常に長い時間がかかります。

私もこのようなことを試しました

(servedpartyimei like :bv_||'%')

次に、「%」なしで値を指定しますが、同じ結果が得られます

バインド変数を使用せずにクエリを実行し、ハードコードされた値を入力すると、結果もすぐに返されます。

ここで何か間違ったことをしていますか?LIKE 演算子のように変数をバインドしないでください。何か案は?

ありがとうございました。

0 投票する
3 に答える
537 参照

oracle - バインド変数を使用してPL/SQLコード・ブロック全体を動的にするにはどうすればよいですか?

バックグラウンド

再利用可能な PL/SQL プロシージャを作成して、あるデータベースから別のデータベースにデータを移動しようとしています。

この目的のために、動的 SQL を使用しています。

プレースホルダーで REPLACE を使用すると、手順は完全に実行されます。ただし、セキュリティ上の理由から、バインド変数を使用したいと考えています。


質問

PL/SQLコード・ブロック全体を(バインド変数を使用して)動的にするにはどうすればよいですか? バインド変数の代わりに REPLACE を使用すると、正常に動作します。


複製方法

これをデータベースに複製するには、次のプロシージャをそのまま作成します。

そして、次の手順を実行できます。

0 投票する
1 に答える
38 参照

oracle - Web ページ検索用のバインド変数の組み合わせ

where句の3つの異なるテーブルに同じ変数(:Item)を使用するこのSQLがあります。Oracle SQL開発者では問題なく動作します。ポップアップしてアイテムを要求し、正しいデータを返します。
この SQL を使用して Web ページを作成し、ユーザーがアイテムを検索できるようにしたいと考えています。これは、Oracle データベースに対してクエリを実行しています。3 :Items を 1 に結合するようにこれを書き直す方法はありますか?
次に、それを Web ページの検索フィールドとして使用します。
私はこれに慣れていないので、親切にしてください。

ありがとう、スコット

0 投票する
0 に答える
804 参照

shell - plsql 終了コードをシェル変数に渡すにはどうすればよいですか?

私のコードは、さまざまな条件のさまざまな終了コードをトラップし、値をローカル変数に格納します。次に、終了コードを格納するために使用しているバインド変数に渡します。私のコードは次のようなものです:

しかし、実行後に以下のエラーが発生します

SP2-0670: 内部数値変換に失敗しました 終了 } [ 成功 | 失敗 | 警告 | n | | | : ] [ コミット | ロールバック]

何か案は???:\