odbctestを使用して、キャストされたインターバルリテラルをテラダタ13.0データベースに挿入する問題

StackOverflow https://stackoverflow.com/questions/6349551

  •  27-10-2019
  •  | 
  •  

質問

私はこのクエリを実行しようとしています:

INSERT INTO SEN.Interval_Day_Minute_Table VALUES('NegativeIntervalDay', CAST(INTERVAL -'200 5' DAY TO HOUR AS INTERVAL DAY (4) TO MINUTE))

ODBCTESTを使用してTeradataデータベースに入り、次のエラーが発生します。

SQLExecDirect:
                In:             Statementhandle = 0x000000000053C270, StatementText = "INSERT INTO SEN.Interval_Day_Minute_Table VALUES('...", Statementlength = 142
                Return: SQL_ERROR=-1
                stmt:       szSqlState = "37000", *pfNativeError = -3706,                       szErrorMsg = "[Teradata][ODBC Teradata Driver][Teradata Database] Syntax error: Invalid INTERVAL Literal. "

テーブルは次のように作成されました:

CREATE TABLE SEN.Interval_Day_Minute_Table(
KeyColumn CHAR (255) CHARACTER SET UNICODE,
Column1 INTERVAL DAY (4) TO MINUTE)

私はTeradataに慣れていませんが、私が知る限り、私は正しい構文を使用しています。

役に立ちましたか?

解決

問題は、文字列の「時間」部分が2桁である必要があるため、-'200 5 'ではなく-'200 05'でなければならなかったことでした。

おっと

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top