[問題]Asp.net讀Oracle的問題

看板Database作者 (孤僻寂寞)時間17年前 (2008/05/31 23:33), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串1/3 (看更多)
********* 以下是我建立臨時資料表的指令 CREATE GLOBAL TEMPORARY TABLE START { S1 NUMBER, S2 NUMBER } 我用Oracle SQL Developer 測試結果是 不同的人同時連線進去 資料表存在, 但資料會是空的 Insert進去後的資料 只有自已看得到,結束連線後, 再回去後,也會是空的 ******** 最近在寫一個支程式 當使用者輸入 起迄點的座標後 就會依照使用者輸入的起迄點座標 把起點50公尺內有什麼公車站牌,Insert到 START 這個臨時資料表 把迄點50公尺內有什麼公車站牌,Insert到 END 這個臨時資料表 然後再做Select 把臨時資料表內的資料撈出來 Begin Insert Into START select 站牌名稱 FROM 站牌資料表; Insert Into END select 站牌名稱 FROM 站牌資料表; End; Select * From Start, END 但是我發現 BEGIN 和 SELECT 無法同時執行, 也就是說要先執行 Begin end; 再執行 Select 才行 當我把它寫入 ASP.NET 用DataReader 執行這二段要分開寫,寫在一起會出錯 **********以下程式出錯*********** string SQL1 = "Begin (略) END; Select * From START, END "; OracleCommand cmd1 = new OracleCommand(SQL1, conn); OracleDataReader objRead = cmd1.ExecuteReader(); **********以上程式出錯************** *********以下程式可以正常執行********** string SQL1 = "Begin (略) END;" OracleCommand cmd1 = new OracleCommand(SQL1, conn); cmd1.ExecuteNonQuery(); string SQL2 = "Select * from START, END "; cmd1.CommandText=orstrSQL2; OracleDataReader objRead = cmd1.ExecuteReader(); 雖然可以正常執行 但已經被Oracle試做二次連線 無法Select到 SQL1的執行結果 但我的OracleConnection 和 OracleCommad 是同一個物件了阿 *************************************** 這問題困擾了很久 希望有人可以為我解答 無以回報 只有我少少的 5000P幣 回應一樓: 我認為解決的方法有二方面,一是改SQL碼一是改ADO.NET 所以才會貼在這裡,想問問我的指令是否有問題 是否有 Begin後還可以直接SELECT的方法,我試過MS-SQL他是可行的 回應二樓: COMMIT;只是結束交易,和我的問題關係因應不大吧? 我主要是希望Insert資料到臨時資料表後,又能Select出來 多謝二位的回應 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.31.170

05/31 23:37, , 1F
你這問題去 ASP.net 相關討論區比較恰當
05/31 23:37, 1F

05/31 23:47, , 2F
你用SQL Developer執行完好像還要下 commit;
05/31 23:47, 2F
※ 編輯: weinine32 來自: 59.104.31.170 (06/01 00:05)

06/01 15:10, , 3F
你可以試著寫Oracle的Stored Procedure
06/01 15:10, 3F

06/04 13:17, , 4F
TEMPORARY好像是對Session的吧...MySQL是這樣Oracle不確定
06/04 13:17, 4F
文章代碼(AID): #18GM_HYd (Database)
文章代碼(AID): #18GM_HYd (Database)