全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1637
推到 Plurk!
推到 Facebook!

有關於PROCEDURE裡CREATE TEMPLATE TABLE

尚未結案
demo
一般會員


發表:14
回覆:14
積分:5
註冊:2003-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-21 14:31:58 IP:218.163.xxx.xxx 未訂閱
各位高手您好:       我的資料庫是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  << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe 這個ERROR是我在命令列裡下SHOW ERRORS來的
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-21 16:06:44 IP:218.163.xxx.xxx 未訂閱
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 星期一,星期二...星期日..星期一..無窮迴圈@@
------
星期一,二...無窮迴圈@@
系統時間:2024-07-01 3:59:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!