0
いくつかのデプロイメントツールを作成しようとしていますが、BTEQは使用したくありません。私はPowerShellのTeradata.Client.Providerで作業しようとしていましたが、テーブルの作成時に構文エラーが発生しています。BTEQを使用せずにTeradataでIF文を使用する方法
[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を使用することはありません。そのツールの使用を避けるために使用できるものはありますか?
これらの間違いを修正しましたが、このエラーが発生しました。[Teradata Database] [3706]構文エラー: ';'と 'IF'キーワードを使用します。私はこれを反映するための質問を更新しました。 – Russ960
もちろん、IFはBTEQ構文の一部です。ロジックをPowerShellに移す必要があります。選択を実行し、行を戻すかどうかを確認し、そうでなければCREATEを実行します。 – dnoeth
これは、BTEQ経由以外のツールを使用するツールや、実行前に私の側のロジックを行うツールがないことを私が理解していることを確認します。 – Russ960