Time of Update: 2018-12-08
plsql串連oracle資料庫報ora 12154錯誤 今天遇到一個問題,使用sqlplus能夠串連到遠端資料庫,但是使用plsql卻串連不上,報錯"ORA-12154: TNS: 無法解析指定的串連標識符" 解決方案如下: 1.先檢查伺服器端的監聽服務是否開啟,如果沒有開啟請啟動其監聽 用戶端:tnsping <tns_name> 伺服器Linux下: #>lsnrctl status 查看監聽狀態 #>lsnrctl start 啟動監聽 2.通過Sql
Time of Update: 2018-12-08
如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待 以下的語句可以查詢到誰鎖了表: 複製代碼 代碼如下:SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
Time of Update: 2018-12-08
在Oracle中刪除使用者時提示:ORACLE無法刪除當前串連使用者可以用以下語句 Sql代碼 SQL> 複製代碼 代碼如下:select username,sid,serial# from v$session;USERNAME SID SERIAL# ------------------------------ ---------- ---------- 1 1 2 1 3 1 4 1 5 1 6 1 7 1 SYS 8 3 A 9 4 已選擇9行。 SQL> 複製代碼 代碼如下:
Time of Update: 2018-12-08
重設oracle序列從指定數字開始 複製代碼 代碼如下:declare n number(10); v_startnum number(10):=10000001;--從多少開始 v_step number(10):=1;--步進 tsql varchar2(200); v_seqname varchar2(200):='MIP_JF_SEQUENCE';--序列名 begin execute immediate 'select '||v_seqname||'.nextval from
Time of Update: 2018-12-08
最近項目中有很多需要做大量操作的需求,用戶端把一組逗號分隔的ID字串傳給資料庫,預存程序就需要把它們分割,然後逐個處理。 以往的處理方式有如下幾種: 1、在預存程序內寫迴圈,逐個分析字串中的ID,然後逐個處理。缺點:迴圈一次處理一個,如果每次判斷都很多,效率將很受影響。適合每次處理要做單獨判斷的情況。2、使用暫存資料表,先調用一個預存程序將ID拆分並插入到暫存資料表中,然後結合暫存資料表可以寫SQL一次處理多筆。缺點:需要插暫存資料表,效率不高,資料量越大影響越嚴重。
Time of Update: 2018-12-08
注意點: 1.如果在PL/SQL 等工具裡開啟的話,直接修改下面的代碼中[斜體加粗部分]執行 2.確保路徑存在,比如【D:\oracle\oradata\Oracle9i\】也就是你要儲存檔案的路徑存在 /*分為四步 */ /*第1步:建立暫存資料表空間 */ 複製代碼 代碼如下:create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m
Time of Update: 2018-12-08
oracle中lpad的用法 pad翻譯:填充 lpad函數,在字串的左側添加指定字串,用法: www.2cto.com lpad(String ,截取長度,添加的字串)。 說是添加字串也不準確,比較準確的說法是對String進行截取字串, 如果截取長度大於String的長度,則在 String的左側添加字串進行填補,如果第三個參數未指定,則用空格進行填補。 例如: select lpad('test',10) from dual; 將返回“ test” select lpad('test',1
Time of Update: 2018-12-08
一、Oracle用戶端與伺服器端的通訊機制 1、OracleNet協議 如所示,Oracle通過Oracle Net協議實現用戶端與伺服器端的串連以及資料傳遞。OracleNet是同時駐留在Oracle資料庫伺服器端和用戶端上的一個軟體層,它封裝了TCP/IP協議,負責建立與維護用戶端應用程式到資料庫伺服器的串連。
Time of Update: 2018-12-08
上周部落格中寫了oracle用戶端串連伺服器的文章,解決了在自己本本上安裝的煩惱。原來自己的電腦與伺服器在一個區域網路,所以每次都是遠程伺服器,但是遠程也不是解決的辦法哈,因為多個人使用同一個伺服器,所以使用極其不方便,在自己本本上安裝,又比較卡。因此才出現上邊部落格。嘻嘻,題外話。言歸正傳。從家回來,繼續我那工作,開啟oracle用戶端PLSQL,呀,突然串連不上了。咦,這是怎麼回事呢,前幾天運轉正常哩,回家三四天,咋成這樣了呢?遇到問題,冷靜分析其錯誤,從錯誤中,可以得知,目標主機,也就是用
Time of Update: 2018-12-08
普及一下oracle的基礎知識,總結一下,oracle 是由執行個體和資料庫組成。結構如下:oracle資料庫由執行個體、資料庫組成:* 資料庫由資料檔案(包含oracle 資料、索引、表結構等資料)、控制檔案(包括每個表的操作資訊)、記錄檔(資料操作sql語句)、參數檔案、口令檔案、日誌歸檔檔案(歸檔模式下)(伺服器崩潰、硬碟損壞情況下,通過日誌恢複時用)* 執行個體由 記憶體結構(memory strutct) 和 後台進程(background processor)組成。記憶體結構組成:*
Time of Update: 2018-12-08
INSTR (源字串, 目標字串, 起始位置, 匹配序號) 在Oracle/PLSQL中,instr函數返回要截取的字串在源字串中的位置。只檢索一次,就是說從字元的開始到字元的結尾就結束。 文法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 參數分析: string1 源字串,要在此字串中尋找。 string2 要在string1中尋找的字串.
Time of Update: 2018-12-08
今天有朋友問到如下一則案例,ORA-01114,ORA-27067以及OSD-04026錯誤同時出現:*** ACTION NAME:() 2009-04-01 09:31:00.762*** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762*** SERVICE NAME:(SYS$USERS) 2009-04-01 09:31:00.762*** SESSION ID:(145.9) 2009-04-01 09:31:00.762*
Time of Update: 2018-12-08
Oracle的function中怎麼返回表變數? 太晚了,過多的理論知識就不說了,下面簡單地說實現吧!.. 1、建立表物件類型。 在Oracle中想要返回表對象,必須自訂一個表類型,如下所示: 複製代碼 代碼如下:create or replace type t_table is table of number; 上面的類型定義好後,在function使用可用返回一列的表,如果需要多列的話,需要先定義一個物件類型。然後把物件類型替換上面語句中的number; 定義物件類型: 複製代碼 代碼如下:
Time of Update: 2018-12-08
當表中的資料不需要時,則應該刪除該資料並釋放所佔用的空間,刪除表中的資料可以使用Delete語句或者Truncate語句,下面分別介紹。 一、delete語句 (1)有條件刪除 文法格式:delete [from] table_name [where condition]; 如:刪除users表中的userid為‘001'的資料:delete from users where userid='001'; (2)無條件刪除整個表資料 文法格式:delete table_name;
Time of Update: 2018-12-08
1.安裝Oracle Client串連到Oracle的前提是在SQL Server伺服器上安裝Oracle Client。Oracle
Time of Update: 2018-12-08
兩個並發事務同時訪問資料庫表相同的行時,可能存在以下三個問題:1、幻想讀:事務T1讀取一條指定where條件的語句,返回結果集。此時事務T2插入一行新記錄,恰好滿足T1的where條件。然後T1使用相同的條件重新查詢,結果集中可以看到T2插入的記錄,這條新紀錄就是幻想。2、不可重複讀取:事務T1讀取一行記錄,緊接著事務T2修改了T1剛剛讀取的記錄,然後T1重新查詢,發現與第一次讀取的記錄不同,這稱為不可重複讀取。3、髒讀:事務T1更新了一行記錄,還未提交所做的修改,這個T2讀取了更新後的資料,然
Time of Update: 2018-12-08
一、 作業環境搭建系統:Windows7 旗艦版 64位PHP環境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24 32位版:http://www.wampserver.com/en/ThinkPHP:3.0正式版:http://thinkphp.cn/down.htmlOracle:Orcale_11gR2
Time of Update: 2018-12-08
1. 停應用程式層的各種程式。 2. 停oralce的監聽進程: $lsnrctl stop 3. 在獨佔的系統使用者下,備份控制檔案: SQL>alter database backup controlfile to trace; 4. 在獨佔的系統使用者下,手工切換重作記錄檔,確保當前已修改過的資料存入檔案: SQL>alter system switch logfile; 5.
Time of Update: 2018-12-08
Union 與 Union ALL 的作用都是合并 SELECT 的查詢結果集,那麼它們有什麼不同呢? Union 將查詢到的結果集合并後進行重查,將其中相同的行去除。缺點:效率低; 而Union ALL 則只是合并查詢的結果集,並不重新查詢,效率高,但是可能會出現冗餘資料。 我們舉個例子來說明一下: 比如資料庫中有兩張表 tab1 和 tab2。tab1 中的資料有:小王小張tab2 中的資料有:小王小李執行查詢:複製代碼 代碼如下:SELECT * FROM tab1 UNION
Time of Update: 2018-12-08
Oracle不像SQLServer那樣在預存程序中用Select就可以返回結果集,而是通過Out型的參數進行結果集返回的。實際上是利用REF CURSOR 複製代碼 代碼如下:--procedure返回記錄集: ----------------------聲明一個Package-------------- CREATE OR REPLACE PACKAGE pkg_test AS TYPEmyrctypeIS REF CURSOR; PROCEDURE get_r(p_id