-1
私はこの質問が非常に些細なものだと信じています。私が定義したストアドプロシージャ内の行も、UDF内の行も選択できません。ここで私が使用した構文は次のとおりです。DB2 LUWのストアドプロシージャーまたはUDF内で「選択」する方法は?
Create Or Replace Procedure GenerateSequence(
In InternalUnitID SmallInt,
In ObjectTypeID SmallInt)
Language SQL
Dynamic Result Sets 1
Not Deterministic
No External Action
Modifies SQL Data
Commit On Return Yes
Begin
Select Number
From Sequence
Where InternalUnit=InternalUnitID
And ObjectType=ObjectTypeID;
End
上記の手順を(SQLファイルに定義して実行して)作成しようとするとします。次のエラーメッセージが表示されます。 DB21034E有効なコマンドラインプロセッサコマンドではないため、このコマンドはSQLステートメントとして処理されました。 SQL処理中にそれが返さ:この問題の原因となることができるか
SQL0104N An unexpected token "Select Number From Sequence Where Intern" was
found following "n Return Yes Begin ". Expected tokens may include: "".
LINE NUMBER=21. SQLSTATE=42601
任意の手掛かりを?
私の環境はWindowsのDB2 10.5 Expressです。
マニュアルを見てみましょう。 https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008329.html?pos=2結果セットを戻すには、単純に宣言しますプロシージャを終了する前にカーソルを開いて開きます。 – Charles
番号とシーケンスは両方とも予約語 – Hogan
私のためにSPを作成する最も難しい部分は、 ';'の別のバッチターミネーターを使うのに正しいコマンドラインオプションを常に得ていたので、私のSPコードに ';'を含めることができます。 – Hogan