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

insert語法問題

尚未結案
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-02 18:47:09 IP:61.220.xxx.xxx 未訂閱
我在pl/sql下了這樣一個sql的語法 insert into ORATT(aa,bb,cc) (select x.aa, x.bb,y.cc from ORAA x,ORAB y, ORAC z where x.aa=x.aa and x.bb=x.bb and x.aa=z.aa) 他畫面下也顯示 xxx rows inserted in 8.321 seconds 且沒有錯誤訊息 可是我在oratt上面卻找不到資料,但我若只下 select x.aa, x.bb,y.cc from ORAA x,ORAB y, ORAC z where x.aa=x.aa and x.bb=x.bb and x.aa=z.aa and 確實可以找出資料來 為什麼上面的insert卻新增不出資料呢? 發表人 - laman 於 2004/07/02 18:48:23
pgdennis
資深會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-02 19:06:14 IP:220.130.xxx.xxx 未訂閱
有xxx rows inserted in 8.321 seconds就表示有成功新增了 我猜是不是忘記commit ..... 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-05 09:30:48 IP:61.220.xxx.xxx 未訂閱
有作commit動作喔
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-05 09:51:27 IP:61.220.xxx.xxx 未訂閱
除了commit之外 還有什麼原因會造成  有出現xxx rows inserted in xx seconds 卻沒寫到其insert的table呢
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-05 10:39:57 IP:61.220.xxx.xxx 未訂閱
原來此table被設計成on commit delete rows; 所以反而會commit後就看不到資料..^^"
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-05 16:12:41 IP:61.220.xxx.xxx 未訂閱
不過在我的app上不管怎麼用都看不到新增出來的資料 是否是BDE連線oracle的設定有不一樣? 還是其他原因呢?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-05 16:38:20 IP:218.170.xxx.xxx 未訂閱
temporary table / on commit delete rows 的特性便是如此... 或許你該考慮用 on commit preserve rows(Connection 斷時才清除 data). 若 on commit delete rows 確實是你要的, BDE 的 "SQLPASSTHRU MODE"參數, 改用 "SHARED NOTAUTOCOMMIT" 試試... 注意: 改這參數...所有的異動...都必須下 "commit" 命令喔.
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-05 17:42:16 IP:61.220.xxx.xxx 未訂閱
改用 "SHARED NOTAUTOCOMMIT"還是一樣的 若說程式中有某個地方有下到commit指令  那應該在其他台電腦也是 查詢不到資料的才對,但是其他台又很正常,可以查詢到新增的資料 所以才會想說是不是在dbe資料庫連結設定有不一樣 因為原作者有特意把這段工作用另一個bde別名來處理    現在我把他 改在insert前加了 TRUNCATE TABLE TableName 可是執行卻會出現錯誤訊息    Compilation errors for PROCEDURE ORDC.SPORDCA_IRA_PRE2    Error: PLS-00103: 發現了符號 "TABLE" 當您等待下列事項之一發生時:          := . ( @ % ;        符號 ":= 在 "TABLE" 繼續之前插入. Line: 10 Text: TRUNCATE TABLE ORDCA_IRA_TT;    
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-05 22:24:08 IP:218.32.xxx.xxx 未訂閱
方便將 Create ... Table ... on commit delete rows; 的 PL/SQL, po 上來看看嗎 ?
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-07-06 09:14:00 IP:61.220.xxx.xxx 未訂閱
-- Drop table drop table ORDCA_IRA_TT cascade constraints; -- Create table create global temporary table ORDCA_IRA_TT ( FLAG CHAR(1), RECTASK CHAR(1), DATASOURCE CHAR(1), WORKSTATUS CHAR(1), OPNO CHAR(8), LOC_NO CHAR(11), DIC VARCHAR2(3), RIC VARCHAR2(3), FSN VARCHAR2(15), UI VARCHAR2(2), DIQTY NUMBER(5), REALQTY NUMBER(5), PROBQTY NUMBER(5), VSN VARCHAR2(15), AC VARCHAR2(2), C VARCHAR2(1), PR VARCHAR2(2), UP NUMBER(7,2), RCN VARCHAR2(18), VALUE NUMBER(9,2), LTDQ VARCHAR2(4), MFT_DATE CHAR(8), IRA_MRK VARCHAR2(255), PPNO VARCHAR2(40), TRANS_NO VARCHAR2(6), BILL_NO VARCHAR2(18), BOX_NO VARCHAR2(5), PUB_DOC VARCHAR2(60), CDATE CHAR(8), TO_STORE CHAR(4), TO_LOC_NO CHAR(11), DUTY_DEPT_ID VARCHAR2(6), DUTY_DEPT_NAME VARCHAR2(20), PROC_MEMO VARCHAR2(255), STORE_IN_DATE VARCHAR2(8), STORE_IN_USER_ID VARCHAR2(10), STORE_IN_USER VARCHAR2(20), OQTY NUMBER(5), NOUN VARCHAR2(40) ) on commit delete rows; 應該沒特別的異常吧?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-07-06 10:00:15 IP:218.170.xxx.xxx 未訂閱
是沒啥異常...    不過, 我在 SQL Explorer 中試, BDE 的 "SQLPASSTHRU MODE"參數,    改用 "SHARED NOTAUTOCOMMIT", 也很正常.
引言: 因為原作者有特意把這段工作用另一個bde別名來處理
不同的 AliasName...是用同一個 Session 嗎 ? 若用不同的 Session...當然是看不到 Temporary Table 的 Data...即使是 on commit preserve rows 也一樣.
引言: 其他台又很正常,可以查詢到新增的資料
那可以比對看看..."別台"的 BDE 如何設定(包括 BDE Administrator 中,Oracle Driver 的設定). 發表人 - Mickey 於 2004/07/06 10:04:09
laman
一般會員


發表:24
回覆:33
積分:11
註冊:2004-05-10

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-06 10:56:49 IP:61.220.xxx.xxx 未訂閱
session都是相同的 他新增資料和顯示資料都在同一個aliasname和同一個session下作的 所以只要沒被commit掉應該是可以看的到資料才對 但是如果是在程式中有被commit 那其他電腦用這個程式應該也是會看不到資料才對摟 但是其他電腦是可以看到資料的,所以表示程式是正常的 那我覺得應該就只剩下外部設定有不一樣 所謂外部應該也只有BDE而已了吧 但是很可惜的是"其他電腦"並不在公司..原作者也不在公司 所以就好麻煩了..看來要再找看看有沒有參考文件可以查一下設定了 感謝各位的回應..^^
系統時間:2024-10-01 17:43:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!