Oracle修改字段类型方法总结
摘要:/*有一个表名为studentdt,字段段名为student_name,数据类型nchar(20)*/ /*1、假设字段数据为空,则不管改为什么字段类型,可以直接执行*/ alter table studentdt modify (student_name nvarchar2(20)); /*2、假设字段有数据,则改为nvarchar2(20)可以直接执行*/ alter table stu...
阅读全文
posted @
2018-04-08 17:01
清风暮雨
阅读(195)
推荐(0) 编辑
查询当前数据库用户和判断字段在表中是否存在
摘要:--**查询当前数据库用户************************************************************* select user v_dbuser from dual; --**判断字段student_band在student表中是否存在*********************************************************...
阅读全文
posted @
2018-04-08 00:31
清风暮雨
阅读(233)
推荐(0) 编辑
ORA-54013: 不允许对虚拟列执行 INSERT 操作
摘要:虚拟列(计算列)不能手动赋值,系统会自动计算,在INSERT语句中把虚拟列(计算列)去掉即可。
阅读全文
posted @
2018-04-04 11:49
清风暮雨
阅读(1592)
推荐(0) 编辑
oracle判断一个字符串是否为数字或日期
摘要:/* 判断字符串是否是日期格式 */ --转日期,正确的日期返回1,错误返回0 create or replace function is_date(parameter varchar2) return number is val date; begin val := to_date(nvl(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss'); ret...
阅读全文
posted @
2018-04-03 22:25
清风暮雨
阅读(1272)
推荐(0) 编辑
row_number增加递增序号列
摘要:--按优先级leverl(1、2、3),同记录只显示最高级别 with soure as ( select 1 leverl, 1 id,'等级1' name,'数学' subject,80 grade from dual --union all --select 1 leverl, 2 id,'等级2' name,'语文' subject,90 grade from ...
阅读全文
posted @
2018-04-01 12:03
清风暮雨
阅读(280)
推荐(0) 编辑
insert into select插入速度优化
摘要:/*第一步:将表修改为nologging属性第二步:将索引修改为nologging属性第三步:插入的时候采用append方式来插入第四步:如果还是慢点的话,可以采用并行插入,增大排序缓冲区第五步:如果有可能可以先把索引置于无效状态,然后插入完成之后再重建索引*/ --查看表索引select * fr
阅读全文
posted @
2018-03-20 16:08
清风暮雨
阅读(2935)
推荐(0) 编辑
判断表或视图是否存在,不存在则创建
摘要:declare v_cnt pls_integer; BEGIN --判断表是否存在,不存在则创建 select count(*) into v_cnt from user_tables where table_name=upper(v_tabname); if nvl(v_cnt,0)=0 then execute immediate ' ...
阅读全文
posted @
2017-11-20 11:39
清风暮雨
阅读(414)
推荐(0) 编辑
Oracle 创建视图和删除视图
摘要:1.创建: create or replace view v_price (price_id,sale_mode,) as select price_id,sale_mode, from pb_price 2.删除: drop view 视图名
阅读全文
posted @
2017-11-18 19:03
清风暮雨
阅读(2364)
推荐(0) 编辑
重新收集oracle表的统计信息
摘要:Analyze table tablename compute statistics
阅读全文
posted @
2017-09-29 11:39
清风暮雨
阅读(843)
推荐(0) 编辑
SQL排序空值放最后面
摘要:方法一 order by 字段名 desc nulls last 方法二 order by nvl(字段名,0) desc 方法三 order by (case when 字段名 is null or 字段名 then 1 else 0 end),字段名
阅读全文
posted @
2017-09-13 17:20
清风暮雨
阅读(1903)
推荐(0) 编辑
ORA-01745: 无效的主机/绑定变量名
摘要:原因1:sql语句中,两个填充变量间没有写逗号。原因2:绑定变量用了oracle关键字导致的。比如使用了oracle关键字::group、:sysdate等等。
阅读全文
posted @
2017-06-19 15:37
清风暮雨
阅读(3124)
推荐(2) 编辑
oracle小数点前0不显示
摘要:不过此方法还有不完善的地方:TO_CHAR(123,'FM9999990.9999') =>结果是123. 多了一个点不是我们想要的Select rtrim(TO_CHAR(123.,'FM9999990.9999'),'.')FROM DUAL 使用rtrim替换掉整数情况下最右边的.
阅读全文
posted @
2017-05-11 17:36
清风暮雨
阅读(3007)
推荐(0) 编辑
oracle 存储过程相互引用查询
摘要:/*在写存储过程的时候,千万注意两个包之间只能方向引用,不能相互引用,这样导致包编译不了, 这与我们编程一样,只能应用层引用底层代码,而不能循环引用一样的原理。 现在配货单的包与其他两个包出现了循环引用问题,其他包可能也会有存在。 */ --可通过下面的方式查询: --quota 引用的包 with quota_ref as ( select a.REFERENCED_NAME as pk...
阅读全文
posted @
2017-04-25 15:35
清风暮雨
阅读(415)
推荐(0) 编辑
oracle判断正整数
摘要:--1.值大于0; 2.取余=0;则是正整数 IF lv_data>0 AND MOD(lv_data,1)=0 THEN RETURN 'Y'; ELSE RETURN 'N'; END IF;
阅读全文
posted @
2017-04-21 10:59
清风暮雨
阅读(3486)
推荐(0) 编辑
Oracle参数传list集合clob
摘要:procedure 存储过程名( v_transfer_list clob,--单号、vip编号集合。例子:'[{"transfer_id":"aa16120100000005","vip_id":100654455},{"transfer_id":"aa16120100000005","vip_id":100655374}]' ) is v_transfer_id varchar...
阅读全文
posted @
2017-04-20 11:00
清风暮雨
阅读(846)
推荐(0) 编辑
oracle 位数不足补0
摘要:不足位数补空格的函数: 1.lpad 左补位 2.rpad 右补位 select lpad('123',6,0) col1 from dual; select rpad('123',6,0) col1 from dual;
阅读全文
posted @
2017-03-29 17:25
清风暮雨
阅读(2983)
推荐(0) 编辑
ORA-20000: ORU-10027: buffer overflow, limit of 20000 bytes
摘要:问题原因:缓冲区是10000位,打印的字符超出了限制。 解决方法1 增大缓冲区 SQL>set serveroutput on size 1000000 解决方法2 设置缓冲区不受限制 在begin后面加上DBMS_OUTPUT.ENABLE(buffer_size => null) ,表示输出buffer不受限制。
阅读全文
posted @
2017-03-28 15:33
清风暮雨
阅读(618)
推荐(0) 编辑
oracle 单独取出年、月、日、时、分、秒等日期
摘要:--获取年 select to_char(sysdate,'yyyy') from DUAL --获取月 select to_char(sysdate,'mm') from dual --获取日 select to_char(sysdate,'dd') from dual --获取时 select to_char(sysdate,'hh24') from dual select to_ch...
阅读全文
posted @
2017-03-28 10:31
清风暮雨
阅读(732)
推荐(0) 编辑
Oracle之DBMS_RANDOM 包用法详解
摘要:dbms_random是一个可以生成随机数值或者字符串的程序包。 这个包有initialize()、seed()、terminate()、value()、normal()、random()、string()等几个函数,但value()是最常用的,下面依次介绍各个函数的详细用法: 备注:dbms_ra
阅读全文
posted @
2017-03-03 15:19
清风暮雨
阅读(267)
推荐(0) 编辑