4
我想在程序中創建一個表。我試圖把創建查詢字符串,然後立即執行字符串。例如:如何在oracle的程序裏面創建一個表?
create or replace procedure hr.temp is
var1 varchar2(4000);
begin
var1:='create table hr.temp(
id number)';
execute immediate var1;
end temp;
但是當我執行這個過程,我得到的錯誤:
ORA-00911: invalid character
ORA-06512: at "SYS.TEMP", line 6
.
.
.
有什麼辦法,我可以做到這一點?
做***不*** ***在SYS帳戶中創建程序。不要這樣做。永遠。 (一旦你將該過程移動到一個適當的賬戶中:在動態SQL中你不能指定';'字符,執行immediate只能執行一個語句,所以不需要終止字符) –
由於你的建議我改變了它到hr schema,但結果是一樣的 –
我刪除了';'字符,現在當我執行過程時,它開始但沒有結束,就像程序在循環中永遠不會結束! –