oracle的faq,ORACLE常用FAQ

第一部分、SQL&PL/SQL

[Q]怎么样查询特殊字符,如通配符%与_

[A]select * from table where name like 'A_%' escape ''

[Q]如何插入单引号到数据库表中

[A]可以用ASCII码处理,其它特殊字符如&也一样,如

insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'

或者用两个单引号表示一个

or insert into t values('I''m'); --两个''可以表示一个'

[Q]怎样设置事务一致性

[A]set transaction [isolation level] read committed;默认语句级一致性

set transaction [isolation level] serializable;

read only;事务级一致性

[Q]怎么样利用游标更新数据

[A]cursor c1 is

select * from tablename

where name is null for update [of column]

……

update tablename set column = ……

where current of c1;

[Q]怎样自定义异常

[A] pragma_exception_init(exception_name,error_number);

如果立即抛出异常

raise_application_error(error_number,error_msg,true|false);

其中number从-20000到-20999,错误信息最大2048B

异常变量

SQLCODE错误代码

SQLERRM错误信息

[Q]十进制与十六进制的转换

[A]8i以上版本:

to_char(100,'XX')

to_number('4D','XX')

8i以下的进制之间的转换参考如下脚本

create or replace function to_base( p_dec in number, p_base in number )

return varchar2

is

l_str varchar2(255) default NULL;

l_num number default p_dec;

l_hex varchar2(16) default '0123456789ABCDEF';

begin

if ( p_dec is null or p_base is null ) then

return null;

end if;

if ( trunc(p_dec) <> p_dec OR p_dec < 0 ) then

raise PROGRAM_ERROR;

end if;

loop

l_str := substr( l_hex, mod(l_num,p_base)+1, 1 ) || l_str;

l_num := trunc( l_num/p_base );

exit when ( l_num = 0 );

end loop;

return l_str;

end to_base;

/

create or replace function to_dec

( p_str in varchar2,

p_from_base in number default 16 ) return number

is

l_num number default 0;

l_hex varchar2(16) default '0123456789ABCDEF';

begin

if ( p_str is null or p_from_base is null ) then

return null;

end if;

for i in 1 .. length(p_str) loop

l_num := l_num * p_from_base + instr(l_hex,upper(substr(p_str,i,1)))-1;

end lo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值