Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: dynamic sql and dates
Cheng,
First, get rid of the chr(10).
Secondly, did you try and debug the sql statement you are generating?
Did you try and run this through sqlplus?
Insert into kk select 20070125 17:11:47 from dual;
Does this look like a sql statement that will work? Give it a try and see what happens.
Tom
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of LS Cheng
Sent: Thursday, January 25, 2007 11:13 AM
To: oracle-l
Subject: dynamic sql and dates
Hi
I am using dynamic sql in a stored procedure which inserts dates into a table.
The procedure is as follows:
create or replace procedure ins_date
is
l_date date := sysdate;
l_sql varchar2(1000);
begin
l_sql := 'insert into kk ' || chr(10) || 'select '|| l_date ||' from dual';dbms_output.put_line(l_sql);
kk is a table with a column (datatype date)
whenever I execute I get this error
SQL> exec ins_date
insert into kk
select 20070125 17:11:47 from dual
BEGIN ins_date; END;
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected ORA-06512: at "LSC.INS_DATE", line 9 ORA-06512: at line 1
If I change the procedure to
create or replace procedure ins_date
is
l_date date := sysdate;
l_sql varchar2(1000);
begin
l_sql := 'insert into kk ' || chr(10) || 'select sysdate from dual';dbms_output.put_line(l_sql);
it runs perfectly
exec ins_date
insert into kk
select sysdate from dual
PL/SQL procedure successfully completed.
Anyone know what can be wrong?
TIA
-- LSC -- http://www.freelists.org/webpage/oracle-lReceived on Thu Jan 25 2007 - 11:59:59 CST
![]() |
![]() |