問題タブ [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.
oracle - バインド変数を使用すると、Oracle Explain Plan が異なります
システムが実行するクエリの説明プランを生成するときに、フィルターをパラメーター化された形式 (例: "somecolumn=:param1") のままにしておくと、パラメーターを実際の値 (例: "somecolumn") に置き換えると説明プランが異なることに気付きました。 ='real_value'). 私の場合、データベース パラメーターを使用した説明計画は、インデックスを無視して終了し、大量のテーブルでフル テーブル スキャンを実行して、高コスト、バイト、および推定行につながります。
プランが違うのはなぜ?システムがバインド パラメータを使用するため、Oracle は望ましくない計画を使用していますか?
oracle - 同じテーブル内の別の列に値が挿入/更新/削除されたときに、列に値が自動的に反映されるようにする方法は?
2 つのテーブルを作成しました: INFORMATION
AND FEED
。
TOT_REM
ここで、 との挿入/削除/更新に基づいて、へ/から値を挿入/更新/削除する必要がS_AMOUNT
ありTOT_AMOUNT
ます。
サンプルの内容は次のとおりです。
&の助けを借りて、 でTOT_REM
実行された更新/挿入/削除操作に基づいて、属性に値を自動的に挿入する必要があります。S_AMOUNT
TOT_AMOUNT
S_AMOUNT
いつでも、TOT_REM を 0 未満にすることはできません。また、TOT_REM は自動的に挿入/削除/更新する必要があります。
したがって、2 番目のタプル (1,10,'13.10.2010',80) を削除すると、反映された状態は次のようにBR_FEED
なります。
表示に失敗するトリガーを作成しました
トリガーのコードは次のとおりです。
質問:
- このアプローチは欠陥がありますか? この方法では、私が望むものを達成することはできませんか?[オプション]
- ここにビューを表示する範囲はありますか? 私はその線で考えることができません!おそらく、経験不足...[オプション]
- TOT_REM 値を自動的に反映できるようにするためのより良いアプローチはありますか?[回答必須]
oracle - LIKE % 演算子でバインド変数を使用する
私の PL/SQL には、バインド変数を使用したこの大きな動的 SQL があります。DBMS_SQL パッケージを使用して、生成されたクエリをバインドおよび実行します。
特定の基準に基づいて、WHERE 節が動的 SQL に追加されます。「in」または「=」を使用してバインド変数に一致させると、すべて正常に機能し、結果が非常に高速に返されます。
例:
(servedparty = :bv_ or servedpartyimsi = :bv_)
ただし、次のことを行うと:
12345679890% のような値を指定すると、クエリに非常に長い時間がかかります。
私もこのようなことを試しました
(servedpartyimei like :bv_||'%')
次に、「%」なしで値を指定しますが、同じ結果が得られます
バインド変数を使用せずにクエリを実行し、ハードコードされた値を入力すると、結果もすぐに返されます。
ここで何か間違ったことをしていますか?LIKE 演算子のように変数をバインドしないでください。何か案は?
ありがとうございました。
oracle - バインド変数を使用してPL/SQLコード・ブロック全体を動的にするにはどうすればよいですか?
バックグラウンド
再利用可能な PL/SQL プロシージャを作成して、あるデータベースから別のデータベースにデータを移動しようとしています。
この目的のために、動的 SQL を使用しています。
プレースホルダーで REPLACE を使用すると、手順は完全に実行されます。ただし、セキュリティ上の理由から、バインド変数を使用したいと考えています。
質問
PL/SQLコード・ブロック全体を(バインド変数を使用して)動的にするにはどうすればよいですか? バインド変数の代わりに REPLACE を使用すると、正常に動作します。
複製方法
これをデータベースに複製するには、次のプロシージャをそのまま作成します。
そして、次の手順を実行できます。
oracle - Web ページ検索用のバインド変数の組み合わせ
where句の3つの異なるテーブルに同じ変数(:Item)を使用するこのSQLがあります。Oracle SQL開発者では問題なく動作します。ポップアップしてアイテムを要求し、正しいデータを返します。
この SQL を使用して Web ページを作成し、ユーザーがアイテムを検索できるようにしたいと考えています。これは、Oracle データベースに対してクエリを実行しています。3 :Items を 1 に結合するようにこれを書き直す方法はありますか?
次に、それを Web ページの検索フィールドとして使用します。
私はこれに慣れていないので、親切にしてください。
ありがとう、スコット
shell - plsql 終了コードをシェル変数に渡すにはどうすればよいですか?
私のコードは、さまざまな条件のさまざまな終了コードをトラップし、値をローカル変数に格納します。次に、終了コードを格納するために使用しているバインド変数に渡します。私のコードは次のようなものです:
しかし、実行後に以下のエラーが発生します
SP2-0670: 内部数値変換に失敗しました 終了 } [ 成功 | 失敗 | 警告 | n | | | : ] [ コミット | ロールバック]
何か案は???:\