Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: dynamic sql and dates

RE: dynamic sql and dates

From: Mercadante, Thomas F \(LABOR\) <Thomas.Mercadante_at_labor.state.ny.us>
Date: Thu, 25 Jan 2007 12:59:59 -0500
Message-ID: <ABB9D76E187C5146AB5683F5A07336FFE08AA0@EXCNYSM0A1AJ.nysemail.nyenet>


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    



This transmission may contain confidential, proprietary, or privileged information which is intended solely for use by the individual or entity to whom it is addressed. If you are not the intended recipient, you are hereby notified that any disclosure, dissemination, copying or distribution of this transmission or its attachments is strictly prohibited. In addition, unauthorized access to this transmission may violate federal or State law, including the Electronic Communications Privacy Act of 1985. If you have received this transmission in error, please notify the sender immediately by return e-mail and delete the transmission and its attachments.

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);
   execute immediate l_sql;
end;
/

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);
   execute immediate l_sql;
end;
/

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-l
Received on Thu Jan 25 2007 - 11:59:59 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US