琉璃網站
CommunityServer BlogEngine.Net 中文技術社群網站

依標籤瀏覽

  • MEMO-ORACLE grant with grant option

    【Scenario】 Oracle上有三個Schema, AAA, BBB與CCC。 AAA下有個tblMyData,BBB下打算建一個View vw2ndHandData: SELECT * FROM tblMyData WHERE Col1 = 'A',所以要Grant SELECT on AAA.tblMyData to BBB,有了tblMyData的查詢權限BBB才能順利將View建立起來。 此時我們要開放vw2ndHand供CCC查詢,於是用BBB身份下了Grant SELECT...
  • MEMO-在Oracle裡查看物件被誰鎖定

    試圖變更Procedure內部使用的暫存資料表: alter table TEMPBUFFER modify EXCHANGERATE NUMBER(14,5) 執行時一直傳回 ORA-14450 attempt to access a transactional temp table already in use 。 理論上Procedure不會一直在執行中,應該是有人手動操作時沒有Commit,到底是誰呢? DBA指點我用以下方法,可以查出誰在鎖定它: (要被Grant Permission才可用...
  • MEMO-Procedure Transaction: SQL Server vs Oracle

    同事詢問關於Procedure內是否會自動包成Transaction的問題,我的認知是SQL要額外下SET XACT_ABORT ON,但Oracle則預設會自動包成Transaction。記憶有些模糊,所以索性做個實驗最準。 分別在SQL, Oracle寫了Procedure,先塞入兩筆資料,第三筆故意產生PK重覆錯誤,觀察資料庫是否有前兩筆資料來判別是否有Transaction保護。實驗證明,原先的認知沒錯,二者行為不同。 SQL Server Procedure要將操作包成Transaction的話...
  • 小試LINQ to Oracle

    上回針對Oracle使用LINQ做了 一番評估 ,打算為Oracle相關專案導入LINQ預做暖身。無意發現除了Entity Framework外,還有另外的選擇---devart的 LINQ to Oracle ! 基於工作專案常偏向RAD性質,對我來說,LINQ to Oracle的輕巧優於EF的龐大嚴謹功能完整。而LINQ to Oracle雖然也找得到免費解決方案,但畢竟要用在工作上,產品有廠商支援撐場,總是比Open Source多幾分穩當,何苦為了幫公司省錢砸了飯碗。 devart的產品看來符合我的需要...
  • Oracle Distributed Transaction Error

    寫了以下的程式做SQL與Oracle的分散式交易: using (System.Transactions.TransactionScope tx = new System.Transactions.TransactionScope()) { //... Update data on SQL Server ... using (OracleConnection cn = new OracleConnection(cnStr)) { cn.Open(); OracleCommand cmdOra =...
  • OracleCommand.CommandText的換行符號處理

    使用System.Data.OracleClient連線Oracle執行指令,發現以下的程式寫法會引發奇怪的錯誤: using (OracleConnection cn = new OracleConnection(cnStr)) { cn.Open(); OracleCommand cmd = new OracleCommand( @" begin update myJobQueue set SendFlag = 'X' where JobId = 'XXX';...
  • Oracle LINQ之路

    自從學會LINQ to SQL後,我就愛死那種忘記SqlConnection、丟掉SqlCommand、抛下SqlParameter的簡潔,乾乾淨淨 幾行Code 就搞定查詢、新增、修改、刪除的感覺。 無奈在公司,就算先撇開專案團隊成員是否已具備LINQ技能的問題,面對Oracle林立的工作專案環境,抬出LINQ to SQL無疑是張飛打岳飛,只能乖乖回去用OracleCommand、OracleParameter行禮如儀。 不過,我還是沒有放棄在Oracle專案使用LINQ的念頭。 ADO.NET...
  • MEMO-PL/SQL SELECT XML Nodes FROM XmlType

    今天跟同事商討整合規格時,遇到一個議題: 如果將多筆資料轉成XML Element,以XML String方式寫入ORACLE欄位,在Stored Procedure裡可否比照Table,用SELECT的方式將多筆資料查詢出來呢? 剛好前幾天另一位同事提到Oracle 9+支援XmlType,現學現賣,再參考網路上的資料,我寫了以下的範例: DECLARE xt XmlType; TYPE refCur IS REF CURSOR ; rc refCur; t VARCHAR2(1024); i...
  • Oracle Instant Client安裝

    前幾天分享了 Windows 7安裝Oracle Client 的經驗,有網友提到了Oracle Instant Client,不過畢竟已是年老體衰之人,當然就沒有勤快到馬上去實地測試一下。 無奈,出來混,總是要還的。(誤) 今早Toad Freeware在啟動時出了狀況,只要一用Oracle 10.2 x86 Client連線就會Crash。氣憤之餘, 在命運的作弄下 剛好看見Toad的Installed Clients清單中有個"偽。Instant Client - 10.2.0.1...
  • Windows 7安裝Oracle Client經驗分享

    今天為了Demo需要,在ThinkPad T43 Windows 7 x86英文版上試裝Oracle Client。 這算是我第一次嚐試在Windows 7上安裝Oracle Client,期間遇到不少狀況,特別整理記錄一下,給有需要的人參考。 依之前 Windows 2008 x64的經驗 ,不再奢望9.2Client可以跑,直接從10.2g版試起。 下載了 10201_client_win32.zip ,安裝過程出現"The procedure entry point GetProcessImageFileNameW...
  • OracleConnection Pooling及OracleDataReader.Close()

    依過去的 經驗 ,Oracle資料庫重啟或連線中斷後,Connection Pool裡會存留一些無效連線,除了IISRESET或重啟程式外,似乎無法透過程式自行剔除Pool裡的連線。但我今天才發現,原來從.NET 2.0起,SqlConnection與OracleConnection早就新增了兩個Static Method可以用來解決類似問題: ClearPool 、 ClearAllPools 。 寫了以下範例,cnStrMonitor與cnStrTester用了是不同的Username,於是我就可以透過統計v...
  • MEMO-取回Oracle Procedure Ref Cursor

    [MEMO系列是老人家備忘用途的貼文,可能沒什麼營養,大家請姑且看之或逕行忽略。] 好久沒跟ORACLE纏綿惹,這陣子都在跟SQL Server廝混。這幾天接手另一個連線ORACLE的專案,在呼叫ORACLE Procedure透過Ref Cursor傳回結果時,腦中已不太記得精確寫法,只記得Ref Cursor的值可以直接用來Fill DataTable或轉成OracleDataReader,胡亂湊出程式碼,系統卻一直傳回以下錯誤: ORA-06550: line 1, column 7:.PLS...
  • 【茶包射手專欄】ASP.NET在IIS7上讀不到Oracle中文

    測試Silverlight的過程中,發現我的Web Application Project,使用Visual Studio 2008直接執行時測試正常,但移到IIS7下執行,由Oracle讀取的中文卻會變成問號。 我將程式簡化如下: using (OracleConnection cn = new OracleConnection(cnStr)) { cn.Open(); OracleCommand cmd = new OracleCommand( "SELECT '良好'...
  • 【茶包射手專欄】ODP.NET: exceeded maximum idle time error

    同事遇到的問題,某台Web接連數天無人使用,再連上時會遇到以下錯誤,IISRest後可恢復正常: Oracle.DataAccess.Client.OracleException: ORA-02396: exceeded maximum idle time, please connect again 這問題應源於Connection Pool中某條Connection已斷線,卻被誤認可用被重覆使用所導致。Google一下,發現不少討論,說可以在ODP.NET的Connection String加上...
  • 【茶包射手專欄】又是Parameters.Add闖的禍

    同事用ODP.NET跑一段SQL,得到驚人的結果: select .... from ( select .... from TABLE_1 where someDate = :pDate and .... ) p join ( select .... from TABLE_2 where someDate = :pDate and .... group by ... union select ... from TABLE_3 where someDate = :pDate and ... group...
Copyright 2010 琉璃網站 , 本站採用 CommunityServer 2008.5 為社群平台
Telligent 贊助台灣區 .Net DCP partner
各圖片與商標為各廠商所有,轉載本站圖文內容須需註明出處網頁