oracle使用小結

2021-06-04 00:42:52 字數 1018 閱讀 4051

1.儲存過程出錯 :pls-00103: 出現符號 "("在需要下列之一時: := . ) , @

create or replace  procedure udf_sp_tlog_add(

in_l_id number,

in_l_type number,

in_b_id number,

in_l_desc varchar2(200),

in_l_time datetime,

in_l_where varchar2(200),

in_o_path varchar2(200))is

begin

insert into tlog(l_id,l_type,b_id,l_desc,l_time,l_where,o_path) values(in_l_id,in_l_type,in_b_id,in_l_desc,in_l_time,in_l_where,in_o_path);

end udf_sp_tlog_add;

執行就包了這個錯誤:

」pls-00103: 出現符號 "("在需要下列之一時: := . ) ,@% default character 符號 「:=「被替換為"("後繼續。

解決方法:儲存過程定義的時候不需要指定varchar2的長度!,我把v_date in varchar2(200) 改為:varchar2 就ok了。

4.出現錯誤:「ora-00979: 不是 group by 表示式」。在mysql中可以根據部分字段進行分組,但是在oracle中如果要分組,就要把所有的查詢欄位都放到group by後面。

解決方案:i.把查詢表示式中的所有欄位都放到group by後面;

ii.把要查詢的字段加上乙個函式min或者max;

5.oracle儲存過程判斷字段是否為空時,不能寫成if orgpath<>'' then...而要寫成if orgpath is not null then...,因為穿過程的值為空(''),但是到儲存過程中解析成了null;

6.oracle關鍵字nvl相當於mysql的ifnull;

Oracle的merge into使用小結

今天專案上碰到乙個問題,要給某個字段排序,因為報表鑽取的一些原因不能用已經存在的排序維表進行關聯排序,但是原表本身的排序又不是想要的,資料量相當大,所以就用merge into來處理這個問題,先給出處理的測試表。目標 用表dept的dname欄位更新cc表的dname欄位 表dept 表cc mer...

Oracle安裝及使用小結

6.建立使用者及授權 首先利用普通身份登入 sqlplus scott tiger 登陸後用管理員身份連線 conn scott tiger as sysdba 建立使用者 create user user1 indentified by user1 如果在這一步完成後就退出後登入的話,是登陸不成的...

Oracle索引小結

索引的三大特點 1,索引樹的高度一般都比較低 2,索引由索引列儲存的值及rowid組成 3,索引本身是有序的 索引查詢 使用者索引字典 select index name,blevel,索引樹所在層數 leaf blocks,leaf 葉子塊 的數目 num rows,distinct keys,c...