This is it
create or replace PROCEDURE
truncate_table(nom_de_table in varchar2)
AUTHID DEFINER
is
total INTEGER ;
trouve EXCEPTION ;
cursor_name INTEGER ;
ret INTEGER ;
trun VARCHAR2(30) := 'truncate table ' ||
nom_de_table ;
BEGIN
select 1
into total
from user_tables
where table_name = upper(nom_de_table) ;
Raise TROUVE ;
EXCEPTION
When TROUVE
then
cursor_name := DBMS_SQL.OPEN_CURSOR ;
DBMS_SQL.PARSE(cursor_name, trun, DBMS_SQL.native) ;
ret := DBMS_SQL.EXECUTE(cursor_name) ;
DBMS_SQL.CLOSE_CURSOR(cursor_name) ;
When others
then
raise_application_error(-20011,'*** La table '||nom_de_table||' n a pas d
autorisation ! ***');
END ;
/
-----Message d'origine-----
De: Smith, Ron L. [mailto:[EMAIL PROTECTED]]
Date: vendredi 7 f�vrier 2003 15:09
�: Multiple recipients of list ORACLE-L
Objet: RE: Help with a truncate command in a procedure
Thanks for the help!
Ron
-----Original Message-----
Sent: Thursday, February 06, 2003 5:49 PM
To: Multiple recipients of list ORACLE-L
(pant pant)
Will I be the first to say that you need to use dynamic SQL?
dbms_sql package in Oracle version < 8.1
execute immediate in Oracle version >= 8.1
-----Original Message-----
I am not a coder but I received this from one of our developers. I can't
find anything about this anywhere. Can someone tell me how to make the
truncate work?
Thanks!
R.Smith
In a DB procedure, I wanted to include the following SQL:
BEGIN
TRUNCATE TABLE LOT837_GLOBAL_TBL_KMG;
END;
Error messages:
PLS-00103: Encountered the symbol "TABLE" when expecting one of the
following:
:= . ( @ % ;
The symbol ":= was inserted before "TABLE" to continue.
(It does not like it, if you take out TABLE, either.)
So, I had to settle for the following SQL:
BEGIN
DELETE LOT837_GLOBAL_TBL_KMG;
END;
Do you know why I can not use the TRUNCATE command?
If you are not the intended recipient of this e-mail message, any use,
distribution or copying of the message is prohibited. Please let me know
immediately by return e-mail if you have received this message by mistake,
then delete the e-mail message. Thank you.
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Bernard, Gilbert
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).