-1

テーブルにデータを挿入する前に、ストアド プロシージャ内のテーブルを削除するにはどうすればよいですか?

create or replace procedure proc_test is
begin
delete * from table1

insert into table1
select * from table2
end proc_test;

動作していないようですが、構文の何が問題になっていますか? エラーは

ERROR at line 8: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

   begin case declare end exception exit for goto if loop mod
   null pragma raise return select update while with

    << close current delete fetch lock insert
   open rollback savepoint set sql execute commit forall merge
   pipe
6. select * from table1
7. 
8. end proc_test;
4

2 に答える 2

2

ああ、問題はセミコロンの欠落でした! これは機能します

create or replace procedure proc_test is
begin
delete * from table1; --semicolon here

insert into table1
select * from table2; --semicolon here
end proc_test;
于 2013-01-21T15:49:53.010 に答える
1

*in delete :は必要ありませんdelete from table1。また、すべてのレコードを削除したい場合は検討してくださいtruncate(ただし、truncateddlコマンドなので、ロールバックできません)

于 2013-01-21T15:34:58.730 に答える