問題タブ [sql-pl]
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 - DB2 SQL PL VARCHAR 変数に改行を挿入するにはどうすればよいですか?
これは非常に簡単なはずですが、これまでのところ運がありませんでした。
db2 - DB2 のドロップとテーブルの作成
ストアド プロシージャを実行するときにテーブルが存在するかどうかを確認し、存在する場合は削除してからテーブルを再作成するようにしています。次のストアド プロシージャの使用
上記の **-->> というラベルの付いたポイントは、データスタジオに好まれていません。このステートメントの何が問題なのかわかりません。助けてください
stored-procedures - db2 の SQL PL ストア プロシージャでテーブルを変更する (一意の制約を追加する) ことはできません
SQL PL for db2 でストア プロシージャを作成しようとしています。一意のキーの一部として新しいフィールドを追加する必要があるため、最初に以前の uk を削除してから、新しい一意のキーを追加する必要があります。MS SQLServer と Oracle ではうまくいきましたが、db2 ではできません。
クライアントとして IBM Data Studio を使用してルーチンをデプロイしようとすると、このエラーが発生します (データベースは db2 9.5 です)。
私が理解していないことは次
のとおりです。-ルーチンで制約を削除するだけで機能します。
- SQL クライアント (Squirrel) からテーブルを変更するだけで制約を追加できます
- 制約を追加しようとしているルーチンだけがある場合、同じエラーが発生します。
助けていただければ幸いです。ありがとう
oracle - DB2のパッケージ
OracleのようにDB2にパッケージ構造があるのだろうか。
DB2の場合、ストアドプロシージャと関数を見つけました。
Oracleでは、複数のストアドプロシージャと関数を1つのパッケージにグループ化できます。DB2に似たようなものはありますか?Oracleとの互換性を有効にできることはわかっていますが、ここではIBMのものを使用する必要があります。
DB2パッケージに関する古い記事を見つけましたが、これはまったく異なる概念に関連しているようです。サードパーティのライブラリを統合し、データベースの外部でさまざまなプログラミング言語を使用してコーディングを行うことが重要なようです。
sql - SP から同じスキーマ内のストアド プロシージャを呼び出す
別のストアド プロシージャをコーディングするときに、完全なスキーマ名を指定せずに同じスキーマ内のストアド プロシージャを呼び出すにはどうすればよいですか。これらは、DB2 内の SQL PL プロシージャーです。
最初の SP:
スキーマ名なしでこの SP を直接呼び出す SP を作成すると、コンパイル エラーが発生します。
それはスローします:
互換性のある引数を持つタイプ "PROCEDURE" の "SP_TEST" という名前の許可されたルーチンが見つかりませんでした.. SQLCODE=-440、SQLSTATE=42884、DRIVER=3.53.71
完全なスキーマ名を直接指定すると、次のように機能します。
ただし、別のスキーマに移動した場合は、その参照をあちこちで置き換える必要があります。問題に対する適切な回避策またはより良い解決策はありますか?
db2 - IBM DB2SQLPLの「set」と「selectinto」の違い
SQL PLで開発する場合、「set」と「select into」の違いは何ですか?
それらは完全に同等ですか?それらに関するドキュメントはどこにありますか?
arrays - DB2SQLPLでのアレイメンバーシップのテスト
ストアドプロシージャコードをOracleからDB2に移行していますが、配列のメンバーシップをテストする方法を見つける必要があります(OracleにはMEMBER OF
演算子があります)。
ストアドプロシージャは、とりわけユーザーの配列を使用します(JDBCを介してJavaコードからパラメーターとして受信されます)。その配列でメンバーシップテストを実行するための最も効率的な方法を見つけたいと思います。Oracleを使用して、次のことを行います。
MEMBER OF
ただし、DB2に相当するものは見つかりません。
私は2つの選択肢を見ます:
- 「手動で」テストを実行するには、すべての配列要素を別の内部ループで実行します。
- 配列ではなく単一の文字列を使用し、
LIKE
ベースのパターンマッチングを使用します。
もっと良い方法はありますか?配列は外部コードからのものであり、私ができるテーブルや関連するものとして渡すことはできないことに注意してくださいJOIN
。
sql - DB2 更新トリガー
あるテーブルの列の更新時に実行され、別のテーブルに特定の値を入力するトリガーを DB2 データベースに作成しようとしています。
たとえば、FLEET_ID
列のある電力単位テーブルがあります。が変更されるたびFLEET_ID
に、テーブルに新しい行を作成する必要がありTRANS_AUDIT
ます。
スキーマは次のTRANS_AUDIT
とおりです。
これが私がこれまでに持っているものですが、動作させることができないようですfunction sequence
。エラーが発生しています。
sql - FORループ文で動的SQLを使用するには?
FOR ステートメントで動的 SQL を使用することは可能ですか?
FOR ループを使用して、SELECT ステートメントからのレコードのバッチを処理しています。ただし、テーブル名を変数に格納するなど、実行時に SELECT ステートメントをフレーム化する必要がある場合はどうすればよいでしょうか。
次のようなものが欲しい
for-loop - DB2 PL SQL の For ループ カーソル内に "With" 句を含むクエリ
"With" 句を含む非常に複雑なクエリがあります。このクエリは、DB2 クライアントで実行すると正常に機能します。ただし、PL SQL ストアド プロシージャの For ループ カーソル内で同じクエリを使用すると、機能しません。ストアド プロシージャをデータベースに適用しようとすると、次のような構文エラーが発生します。
for ループは次のようになります。
この問題を解決してください。前もって感謝します。