如何在不使用 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 中的双 INTEGERExceptionOutput 中的 VARCHAR(max),CREATE 将失败,这是 Teradata 中的未知数据类型。