我尝试创建一些部署工具,但我不想使用BTEQ。我一直在尝试使用PowerShell中的Teradata.Client.Provider,但我在创建表时遇到语法错误。
[Teradata数据库] [3706]语法错误:期望之间的东西 &#39 ;;'而且' IF'关键字。
SELECT * FROM DBC.TablesV WHERE DatabaseName = DATABASE AND TableName = 'MyTable';
IF ACTIVITYCOUNT > 0 THEN GOTO EndStep1;
CREATE MULTISET TABLE MyTable ,
NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
MyColId INTEGER GENERATED ALWAYS AS IDENTITY
(START WITH 1
INCREMENT BY 1
MINVALUE 0
MAXVALUE 2147483647
NO CYCLE)
NOT NULL,
MyColType VARCHAR(50) NULL,
MyColTarget VARCHAR(128) NULL,
MyColScriptName VARCHAR(256) NULL,
MyColOutput VARCHAR(64000) NULL,
isMyColException BYTEINT(1) NULL,
ExceptionOutput VARCHAR(64000) NULL,
MyColBuild VARCHAR(128) NULL,
MyColDate TIMESTAMP NOT NULL
)
PRIMARY INDEX PI_MyTable_MyColLogId(MyColLogId);
LABEL EndStep1;
我宁愿不使用BTEQ,因为我没有发现它在我们创建的其他部署工具中运行良好并且需要一些黑客攻击。我可以使用什么来避免使用该工具吗?
答案 0 :(得分:1)
什么解析错误?
由于INTEGER
中的MyColId
和VARCHAR(max)
中的ExceptionOutput
中的Visual C++ Redistributable
加倍,CREATE将失败,这是Teradata中未知的数据类型。