1. 遇到 to_char(imp_date,'||''''||v_date||''') 相当于 to_char(imp_date, 'v_date'),但是不能这么写,因为v_date是变量(存储过程),要执行的,所以写成那个样子,看了下面的文章之后为什么要这么写
http://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html
2. to_char(日期,格式);
3. to_date(字符串,格式) to_date(v_imp_date,''''||v_date||'''') 同理
4. 关于序列,创建不说,百度有的是,然后就是使用,
CURRVAL(currval): 返回序列的当前值。
NEXTVAL(nextval): 序列递增,返回下一值。
insert into 表名 values(seq_test.nextval,value); --seq_test 创建好的序列
select seqtest.nextval from dual;
select seqtest.currval from dual;
5.trunc(number,num_digits)
//number:需要截尾取整的数字
//num_digits:用于指定取整的精确数字。默认为0.
// trunc()函数截取时不进行四舍五入
select trunc(123.458,0) from dual --123 select trunc(123.458,1) from dual --123.4 select trunc(123.458,-1) from dual --120
6. oracle中存储过程调试
第一步:dbms_output.put_line(v_sql_stmt);
第二步:点击存储过程,右击,test,输入相关变量
第三步:在dbms输出中复制sql语句
第四步:复制sql语句,打开命令窗口执行,看是否有输出
7. instr(string1,string2,start_position,nth_appearance)
//string1:源字符串,string2:要查找的字符串,start_position:开始位置,nth_apperarance:要查找第几次出现的string2
eg:
select instr('sydabc','s') from dual; --返回1
select instr('ysranmo','s') FROM dual; --返回2
select instr('yssranmo','s') FROM dual; --返回2
select instr('syranmo','ra') FROM dual; -- 返回 3
select instr('syran mo','at',1,2) FROM dual; -- 返回 0
8. oracle 12c 有json类型,但是11及以下没有,所以如何处理json是一个问题,以下是解决方案
https://www.oschina.net/code/snippet_1162040_48289#74104,,这个链接中的内容就是解决方案