[問題]Asp.net讀Oracle的問題
*********
以下是我建立臨時資料表的指令
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
05/31 23:37, 1F
推
05/31 23:47, , 2F
05/31 23:47, 2F
※ 編輯: weinine32 來自: 59.104.31.170 (06/01 00:05)
推
06/01 15:10, , 3F
06/01 15:10, 3F
推
06/04 13:17, , 4F
06/04 13:17, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):