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).

Reply via email to