有關於PROCEDURE裡CREATE TEMPLATE TABLE |
尚未結案
|
demo
一般會員 發表:14 回覆:14 積分:5 註冊:2003-01-13 發送簡訊給我 |
各位高手您好:
我的資料庫是9I,寫了一個TESTCREATEVIEW.SQL的PROCEDURE
可是在SQLPLUS裡去測都會有編譯錯誤的ERROR,我是ORACLE的新手,
實在搞不懂他的ERROR CODE是在寫什麼,能否請諸位高手幫個忙,看看是怎麼了?
還是ORA的PROCEDURE不能像MSSQL一樣可以在SP裡下CREATE TABLE丫?
幫個忙吧!!以下是我的TESTCREATEVIEW.SQL內容
Create or Replace Procedure testCreateView
is
begin
CREATE table dbomstack(depth_level number,Pobjid number,Cobjid number,lobjid number);
CREATE table dbomfinal(org_level number,Lobjid number,Pobjid number,Cobjid number,PID char(30), CID char(30)); select * from dbomstack;
select * from dbomfinal;
drop table dbomstack,dbomfinal;
end testCreateView;
/
出來的ERROR CODE在下:
4/4 PLS-00103: 發現了符號 "CREATE" 當您等待下列事項之一發生時:
begin case
declare exit for goto if loop mod null pragma raise return
select update while with
|
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
1.PL/SQL跟T-SQL差異不小....建議你找本書吧
2.要在procedure中執行DDL動作,不能這樣寫,要用
execute immediate '建立table的ddl sql'--for 9i
跟mssql不一樣的是oracle在procedure compile時會檢查所用的物件存不存在
或正不正確,mssql則不會,所以才有這個限制.
3.另外,procedure中不能直接下select語句,只能用select into..
把select的值assign給變數
mssql可這樣做,但oracle是不行的...
4.drop table dbomstack,dbomfinal;這樣寫也不行,一次只能drop一個table
星期一,星期二...星期日..星期一..無窮迴圈@@
------
星期一,二...無窮迴圈@@ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |