1.在Varchar2的格式中‘’相當於null(都不分配記憶體)。 select '存在' aa from dual where '' is null 這句話的結果是存在的。 2.在Oracle中不能對null做邏輯判斷,只能使用is和is not。 select '存在' aa from dual where null = null;select '存在' aa from dual where null <> null;select '存在' aa from dual
將oracle 10g報表庫遷移到 oracle 11g上發現有個預存程序編譯時間報ora-00979錯誤,經確定是group by 後面加的遊標不能使用,後來用metlink查詢發現是11g的一個bug:ORA-979 bugs on 11.2.0.1 [ID 1085766.1] 修改時間 23-MAR-2012 類型 FAQ 狀態 PUBLISHED Applies to: Oracle Server - Enterprise
其實這個問題也沒啥難度,不過到網上找了很久,用 between 的也有,用 minus 的也有。不過用這幾種方法都沒能成功的完成帶排序的分頁查詢。最後還是在Oracle官網找到瞭解決的辦法。鑒於Oracle官網無與倫比的速度,將其摘抄與此,便於日後封裝 oci 串連類。原文見 http://www.oracle.com/technology/global/cn/pub/articles/oracle_php_cookbook/fuecks_paged.htmlCode highlighting
現在在做的項目資料庫從sqlserver 更改到了oracle所以項目裡所有的sql語句全部要換成支援oralce的樣式。在過程中遇到了這個連表更新。弄了一下午才終於把它搞定了讓我們來看一下原來的句子:sqlserver : update table1 set 欄位1=table2.欄位1,欄位2=table2.欄位2,欄位3=table2.欄位3 from (select 欄位4,欄位1,欄位2,欄位3 from table2 wheretime between '" +time1+ "'
1. 定義變數declare n integer; //定義單個變數//定義多個變數DECLARE n integer;mm integer;2. 賦值n:=12;mm:=100; for 語句DECLAREn integer;mm integer;beginn:=12;mm:=100;for n in 10..1000 loopinsert into tab_test (Pk,TESTE) VALUES (cast(n as varchar(23)),cast(n as varchar(25)
3.1 對象的定義對象可以嵌套,而且嵌套級數不限。1. 常式:-- 建立對象頭CREATE OR REPLACE TYPE test_obj IS OBJECT(m_Name VARCHAR2(30),m_id NUMBER,MEMBER PROCEDURE GetName(p_id IN NUMBER, p_name OUT VARCHAR2),MEMBER FUNCTION GetName(p_id NUMBER) RETURN VARCHAR2,MEMBER PROCEDURE