如何在不使用 BTEQ 的情况下在 Teradata 中使用 IF 语句
How can I use IF statements in Teradata without using BTEQ
我正在尝试创建一些部署工具,但我不想使用 BTEQ。我一直在尝试在 PowerShell 中使用 Teradata.Client.Provider,但在创建 table 时遇到语法错误。
[Teradata Database] [3706] Syntax error: expected something between
';' and the 'IF' keyword.
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,因为我发现它在我们创建的其他部署工具中效果不佳并且需要一些技巧。有什么我可以使用的东西可以避免使用该工具吗?
什么解析错误?
由于 MyColId
中的双 INTEGER
和 ExceptionOutput
中的 VARCHAR(max)
,CREATE 将失败,这是 Teradata 中的未知数据类型。
我正在尝试创建一些部署工具,但我不想使用 BTEQ。我一直在尝试在 PowerShell 中使用 Teradata.Client.Provider,但在创建 table 时遇到语法错误。
[Teradata Database] [3706] Syntax error: expected something between ';' and the 'IF' keyword.
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,因为我发现它在我们创建的其他部署工具中效果不佳并且需要一些技巧。有什么我可以使用的东西可以避免使用该工具吗?
什么解析错误?
由于 MyColId
中的双 INTEGER
和 ExceptionOutput
中的 VARCHAR(max)
,CREATE 将失败,这是 Teradata 中的未知数据类型。