sql >> Databasteknik >  >> RDS >> Oracle

TO_DATE-problem med Oracle DBMS_SQL.EXECUTE-funktionen

Min första inställning till detta skulle vara att STP P_USER_TIME() trunkerar tidsstämpeln. Men om du är säker på att det möjligen INTE gör det kan du försöka-

DECLARE
   ret_int INTEGER;
   plsql_block  VARCHAR2(1000);
BEGIN
   plsql_block :='BEGIN P_USER_TIME(to_timestamp(''21-JUL-2012 03:30:30'',''DD-MON-YYYY HH24:MI:SS'')); END;';
   ret_int := DBMS_SQL.OPEN_CURSOR;
   DBMS_SQL.PARSE(ret_int,plsql_block,DBMS_SQL.NATIVE);
   ret_int_execute := DBMS_SQL.EXECUTE(ret_int);
   DBMS_SQL.CLOSE_CURSOR(ret_int);
EXCEPTION
WHEN OTHERS THEN
   DBMS_SQL.CLOSE_CURSOR(ret_int);
END;

Obs - det finns ett antal datum-tid-relaterade buggar relaterade till ODBC-drivrutiner. Till exempel - Bug 11864041 - TIDSTÄMPEL VARIABEL PASSAD SOM VARCHAR FRÅN ODBC SOM ORSAKER VÄRDE ATT BLI KORRUPT (Oracle Support )



  1. flask-login:kan inte förstå hur det fungerar

  2. Hur man släpper utländska nyckelbegränsningar i SQL Server-databasen - SQL Server / TSQL självstudie del 75

  3. Är det möjligt att lagra bilder, ljud, videor i SQL Database?

  4. Orsakas av:java.sql.SQLE Undantag:ORA-01795:maximalt antal uttryck i en lista är 1000?