sql >> Database teknologi >  >> RDS >> Oracle

TO_DATE-problem med Oracle DBMS_SQL.EXECUTE-funktionen

Min første holdning til dette ville være, at STP'en P_USER_TIME() afkorter tidsstemplet. Men hvis du er sikker på, at det muligvis IKKE gør det, kan du prøve-

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;

Bemærk - der er en række dato-tids-relaterede fejl relateret til ODBC-drivere. For eksempel - Bug 11864041 - TIMESTAMP VARIABLE OVERGÅET SOM VARCHAR FRA ODBC, SOM FØRER TIL AT VÆRDI BLIVER KORRUPT (Oracle Support )



  1. Fejl ved lagring og hentning af blob fra database SQL-oracle

  2. MySQL-krypterede kolonner

  3. Brug af en markør i en lagret procedure til at sløjfe rækker MySQL

  4. MySQL union og bestilling ved hjælp