問題タブ [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.
sql - バインド変数の重複を避けるために、このような副選択に対して結合するのは悪い形式ですか?
以下は、「従来の」方法で行われた単純化されたサンプル クエリです (サンプル クエリは PostgreSQL 8.3 でテストされています)。
問題は、同じバインド変数を 2 回渡すのが面倒なことです (より複雑なクエリで 6 回以上必要な場合はなおさらです)。
もちろん、SQL では、同じクエリで同じバインド変数を複数回使用できます。
しかし、多くの DB API レイヤーはこれをサポートしていない (または簡単にサポートしていない) ため、このアプローチを使用するのはさらに面倒です。
サブセレクトに対して JOIN を追加することで、これを回避できます。
Explain は、予想どおり、後者のオプションが最も複雑な実行計画を持つことを示していますが、少なくともこの例では、一貫して a よりも速く実行され、b よりもわずかに遅く実行されます (ただし、クエリの準備には、どちらの方法よりも時間がかかります)。他の 2 つのオプション)。
だから私の質問は:
バインド変数の繰り返しを避ける方法として、この種の JOIN/sub-select 構造は、より複雑なクエリの良いフォームまたは悪いフォームと見なされますか?
sql - EJBクエリIN句の変数のバインド
このようにEJBIN句でリストをバインドすることは可能ですか?
oracle - 'IN'句でバインド変数を使用する
数値のリストをplsql変数にクエリし、それを別のSQLクエリのin句で使用したいと思います。やりたいことのテストケースを以下に作成しました。
私は解決策のためにグーグルをしました、そしてそれはどういうわけか可能であるに違いないと思います、しかし私はそれを実行させません。コンパイルソリューションを手伝ってください。
sql - SQL ステートメントでのバインド変数の外部結合 (Oracle 11g)
Null になる可能性がある Bind-Variables を使用する Select ステートメントが多数あります。Null は、Bind-Value がステートメントを制限してはならないことを意味します。
以下は、私たちが行っている簡単な例です。
2 つのステートメントには、次の実行計画があります。
では、そのような外部結合に最適なソリューションは何だと思いますか?
java - 制限とオフセットに関する jooq の問題
私は jooq を spring と統合し、データベース (MySQL) へのすべてのタイプのクエリに対して、spring の JDBC テンプレートを使用しています。ここでは jooq ライブラリを使用して、jdbc テンプレートに渡す SQL クエリを生成します。
クエリに制限やオフセットを追加するまで、クエリの残りの部分は正常に機能しますが。
次のようにクエリを生成しています。
次のようにエラーが発生します。
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; 悪い SQL 文法 [テーブル t から table_name を選択 (t.table_schema LIKE 'test') limit ? オフセット?]; ネストされた例外は com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException です: SQL 構文にエラーがあります。near '? を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。オフセット?' 1行目
limit および offset メソッドに渡された値がクエリに追加されないことは明らかです。
ドキュメントを検索しましたが、これを達成する他の方法は見つかりませんでした。
oracle - Zend_Db - fetch または execute と fetch の前に行われない定義
Oracle には、すべての電子メールを処理する send_mail() プロシージャがあります。
エラーなしでZendクエリからその手順を呼び出すことができます$db->query("blah blah");
が、を使用する$stmt = $db->prepare("blah blah");
とエラーが発生します(メールは送信されますが):
24374 ORA-24374: define not done before fetch or execute and fetch *begin send_mail(:mailto,:mailhost,:mailport,:mailfrom,:subject,:message); end;","file":"C:\\wamp\\www\\sam\\library\\Zend\\Db\\Statement\\Oracle.php
すべての変数が定義されていますか? では、何がこのエラーの原因なのかわかりませんか?
私のコード:
なぜこれをバインドステートメントとしてではなくクエリとして渡すことができるのか、誰かが光を当てることができるでしょうか?
私の SEND_MAIL 手順:
注意: バインド変数を使用して SQL Developer からクエリを実行すると、次のエラーが発生し、電子メールが送信されません。
しかし、それはzendで送信されますか?
よろしくお願いします
ネイサン
sql - TOAD は &String をバインド変数と見なします
私はOracle Data IntegratorでETLを開発しており、TOADでコードの一部をテストすることもあります。今日、私はTOADに問題がありました。次のような行がありました
上記のフィルターを含む SQL を実行しようとすると、TOAD は PROD の値を要求します。PROD はバインド変数または置換変数のように見えました。TOAD 設定にこの機能を有効にするオプションはありますか。列 (:) でバインド変数を使用していますが、データには & が含まれているため、それを使用する必要があります。
このコードは ODI で完全に機能します。必要なのは TOAD のソリューションだけです。前もって感謝します。
sql - UPDATE クエリにカーソルを使用できますか?
UPDATE クエリに対してもカーソルを宣言して開くことができますか、それとも SELECT クエリに対してのみですか?
これでいいですか?または、カーソルを SELECT ステートメントにのみ使用する必要がある場合、UPDATE クエリを実行するにはどうすればよいでしょうか?
oracle - Use a database value in SQLPLUS as a parameter to a batch file
I need to run a batch file and pass in a database value. Depending on the day, a different value needs to be passed into the DOS command. This particular business rule is defined in a view in the database.
Our primary scheduling tool is datastage which runs scripts in SQLPLUS, so this is my preferred method for schedules activities. I could also run a batch file directly taht calls SQLPLUS and gets a value, but there is much more hassle setting it up so I'd prefer not to.
I'm a SQLPLUS amateur.
The SQL script I'm passing into SQLPLUS is below. The problem I'm having is it's passing in :sTriggerName, not the value of it.