Problema nell'inserimento di un intervallo lanciato letterale in un database Teradata 13.0 utilizzando ODBCtest

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

  •  27-10-2019
  •  | 
  •  

Domanda

Sto cercando di eseguire questa domanda:

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

In un database Teradata usando ODBCTest e ottengo il seguente errore:

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. "

Il tavolo è stato creato con:

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

Sono nuovo a Teradata, ma per quanto ne so, sto usando la sintassi corretta.

È stato utile?

Soluzione

Il problema era che la parte "Hours" della stringa doveva essere di due cifre, quindi -200 05 'anziché -'200 5 ".

Whoops

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top