2016-11-21 8 views
-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です。

+1

マニュアルを見てみましょう。 https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008329.html?pos=2結果セットを戻すには、単純に宣言しますプロシージャを終了する前にカーソルを開いて開きます。 – Charles

+0

番号とシーケンスは両方とも予約語 – Hogan

+1

私のためにSPを作成する最も難しい部分は、 ';'の別のバッチターミネーターを使うのに正しいコマンドラインオプションを常に得ていたので、私のSPコードに ';'を含めることができます。 – Hogan

答えて

関連する問題