私は T-SQL の経験が豊富で、お客様のために IBM Netezza アプライアンスに慣れてきました。Windows で Netezza エミュレーター 7.1 を試し、DDL、DML、Control、および Transaction ステートメントを実行しました。また、Bluemix クラウドで試用版の DashDB にサインアップしました。
問題:
DashDB の Aginity ワークベンチと Bluemix の RunSQL の両方で構文のハードルに直面しています。
これらにより、単純な DDL や DML ステートメントを超える複雑な SQL を書くことができなくなります。私はこれについてかなりイライラしています。
- 変数宣言
T-SQL:
DECLARE @I AS INTEGER;
私はこれを試しました
DECLARE VARIABLE i INTEGER ;
エラー [42601] [IBM][DB2/LINUXX8664] SQL0104N 「DECLARE i」の後に予期しないトークン「INTEGER」が見つかりました。予想されるトークンには、「END-OF-STATEMENT」が含まれる場合があります。
DECLARE i AS INTEGER;
エラー [42601] [IBM][DB2/LINUXX8664] SQL0104N 「DECLARE i AS」の後に予期しないトークン「INTEGER」が見つかりました。予想されるトークンには、「END-OF-STATEMENT」が含まれる場合があります。
DECLARE i INTEGER;
エラー [42601] [IBM][DB2/LINUXX8664] SQL0104N 「DECLARE i」の後に予期しないトークン「INTEGER」が見つかりました。予想されるトークンには、「END-OF-STATEMENT」が含まれる場合があります。
これらの仕事のどれも...私は単に困惑しています!
- この非常に単純なストアド プロシージャのサンプルは、コンパイルできません。
コード:
CREATEPROCEDURE DASH6441.FOO (IN ORDER_DETAIL_CODE_IN VARCHAR(16), IN SALES_STAFF_CODE_IN INTEGER)
LANGUAGESQL
BEGIN
SELECT*FROM DASH6441.EMP;
END;
エラー:
エラー [42601] [IBM][DB2/LINUXX8664] SQL0104N "ECT * FROM DASH6441." の後に予期しないトークン "EMP" が見つかりました。予想されるトークンには、「END」が含まれる場合があります。
質問:
私が欠けているものはありますか?
T-SQL のように、SQL スクリプトの構造、または
USING <db_name>
コンパイラが期待する予備的なディレクティブ (T-SQL など) はありますか? 私はそれを疑いますが、ただ尋ねます変数宣言、ストアド プロシージャ、またはジェネリック スクリプトのスケルトンをこれらすべての要素と共有できる場合、どれが正常にコンパイルされると思いますか? そこから自分を奮い立たせることができるかもしれません
私は現在、この構文の問題でショーストッパーに直面しています。