我有丰富的 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 中)是否有任何结构?我怀疑它,但只是问如果您可以与所有这些元素共享变量声明、存储过程或通用脚本的骨架,您知道这些元素可以为您成功编译吗?也许我可以从中启发自己
我现在正面临着这个语法问题的阻碍。