oracle学习

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,,这个链接中的内容就是解决方案

原文地址:https://www.cnblogs.com/an5211/p/6698972.html