[問題]用ASP.NET讀Oracle的問題

看板C_Sharp作者 (孤僻寂寞)時間17年前 (2008/05/31 23:55), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
********* 以下是我建立臨時資料表的指令 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幣 因為不知道要PO在哪個板比較洽當 所以同一篇文章PO在 DATABASE和C#板 如不洽當請告知 我會自D -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.31.170

06/01 01:01, , 1F
你是不是應該用storeprocedure寫好在call了?
06/01 01:01, 1F

06/01 01:02, , 2F
出現begin/end 你把它包成store procedure會比較好維護
06/01 01:02, 2F
文章代碼(AID): #18GNJruj (C_Sharp)