知识大全 ORACLE之常用FAQ V1.0

Posted 版本

篇首语:常识是本能,有足够的常识便是天才。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ORACLE之常用FAQ V1.0相关的知识,希望对你有一定的参考价值。

ORACLE之常用FAQ V1.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   第一部分 SQL&PL/SQL  [Q]怎么样查询特殊字符 如通配符%与_  [A]select * from table where name like A\\_% escape \\     [Q]如何插入单引号到数据库表中  [A]可以用ASCII码处理 其它特殊字符如&也一样 如   insert into t values( i ||chr( )|| m ); chr( )代表字符   或者用两个单引号表示一个  or insert into t values( I m ); 两个 可以表示一个     [Q]怎样设置事务一致性  [A]set transaction [isolation level] read mitted; 默认语句级一致性  set transaction [isolation level] serializable;  read only; 事务级一致性    [Q]怎么样利用游标更新数据  [A]cursor c is   select * from tablename   where name is null for update [of column]  ……  update tablename set column = ……  where current of c ;    [Q]怎样自定义异常  [A] pragma_exception_init(exception_name error_number);  如果立即抛出异常  raise_application_error(error_number error_msg true|false);  其中number从 到 错误信息最大 B  异常变量  SQLCODE 错误代码  SQLERRM 错误信息    [Q]十进制与十六进制的转换  [A] i以上版本   to_char( XX )  to_number( D XX )   i以下的进制之间的转换参考如下脚本  create or replace function to_base( p_dec in number p_base in number )   return varchar   is   l_str varchar ( ) default NULL;   l_num number default p_dec;   l_hex varchar ( ) default ABCDEF ;   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 < ) then   raise PROGRAM_ERROR;   end if;   loop   l_str := substr( l_hex mod(l_num p_base)+ ) || l_str;   l_num := trunc( l_num/p_base );   exit when ( l_num = );   end loop;   return l_str;   end to_base;   /   create or replace function to_dec   ( p_str in varchar   p_from_base in number default ) return number   is   l_num number default ;   l_hex varchar ( ) default ABCDEF ;   begin   if ( p_str is null or p_from_base is null ) then   return null;   end if;   for i in length(p_str) loop   l_num := l_num * p_from_base + instr(l_hex upper(substr(p_str i ))) ;   end loop;   return l_num;   end to_dec;   /     [Q]能不能介绍SYS_CONTEXT的详细用法  [A]利用以下的查询 你就明白了  select  SYS_CONTEXT( USERENV TERMINAL ) terminal   SYS_CONTEXT( USERENV LANGUAGE ) language   SYS_CONTEXT( USERENV SESSIONID ) sessionid   SYS_CONTEXT( USERENV INSTANCE ) instance   SYS_CONTEXT( USERENV ENTRYID ) entryid   SYS_CONTEXT( USERENV ISDBA ) isdba   SYS_CONTEXT( USERENV NLS_TERRITORY ) nls_territory   SYS_CONTEXT( USERENV NLS_CURRENCY ) nls_currency   SYS_CONTEXT( USERENV NLS_CALENDAR ) nls_calendar   SYS_CONTEXT( USERENV NLS_DATE_FORMAT ) nls_date_format   SYS_CONTEXT( USERENV NLS_DATE_LANGUAGE ) nls_date_language   SYS_CONTEXT( USERENV NLS_SORT ) nls_sort   SYS_CONTEXT( USERENV CURRENT_USER ) current_user   SYS_CONTEXT( USERENV CURRENT_USERID ) current_userid   SYS_CONTEXT( USERENV SESSION_USER ) session_user   SYS_CONTEXT( USERENV SESSION_USERID ) session_userid   SYS_CONTEXT( USERENV PROXY_USER ) proxy_user   SYS_CONTEXT( USERENV PROXY_USERID ) proxy_userid   SYS_CONTEXT( USERENV DB_DOMAIN ) db_domain   SYS_CONTEXT( USERENV DB_NAME ) db_name   SYS_CONTEXT( USERENV HOST ) host   SYS_CONTEXT( USERENV OS_USER ) os_user   SYS_CONTEXT( USERENV EXTERNAL_NAME ) external_name   SYS_CONTEXT( USERENV IP_ADDRESS ) ip_address   SYS_CONTEXT( USERENV NEORK_PROTOCOL ) neork_protocol   SYS_CONTEXT( USERENV BG_JOB_ID ) bg_job_id   SYS_CONTEXT( USERENV FG_JOB_ID ) fg_job_id   SYS_CONTEXT( USERENV AUTHENTICATION_TYPE ) authentication_type   SYS_CONTEXT( USERENV AUTHENTICATION_DATA ) authentication_data  from dual    [Q]怎么获得今天是星期几 还关于其它日期函数用法  [A]可以用to_char来解决 如   select to_char(to_date( yyyy mm dd ) day ) from dual;   在获取之前可以设置日期语言 如  ALTER SESSION SET NLS_DATE_LANGUAGE= AMERICAN ;  还可以在函数中指定  select to_char(to_date( yyyy mm dd ) day NLS_DATE_LANGUAGE = American ) from dual;   其它更多用法 可以参考to_char与to_date函数  如获得完整的时间格式  select to_char(sysdate yyyy mm dd hh :mi:ss ) from dual;  随便介绍几个其它函数的用法   本月的天数  SELECT to_char(last_day(SYSDATE) dd ) days FROM dual  今年的天数   select add_months(trunc(sysdate year ) ) trunc(sysdate year ) from dual  下个星期一的日期  SELECT Next_day(SYSDATE monday ) FROM dual    [Q]随机抽取前N条记录的问题  [A] i以上版本  select * from (select * from tablename order by sys_guid()) where rownum < N;  select * from (select * from tablename order by dbms_random value) where rownum< N;  注 dbms_random包需要手工安装 位于$ORACLE_HOME/rdbms/admin/dbmsrand sql  dbms_random value( )可以产生 到 范围的随机数    [Q]抽取从N行到M行的记录 如从 行到 行的记录  [A]select * from (select rownum id t * from table where ……   and rownum <= ) where id > ;    [Q]怎么样抽取重复记录  [A]select * from table t where where t rowed !=  (select max(rowed) from table t   where t id=t id and t name=t name)  或者  select count(*) l_a l_b from table t  group by col_a col_b  having count(*)>   如果想删除重复记录 可以把第一个语句的select替换为delete    [Q]怎么样设置自治事务  [A] i以上版本 不影响主事务  pragma autonomous_transaction;  ……  mit|rollback;    [Q]怎么样在过程中暂停指定时间  [A]DBMS_LOCK包的sleep过程  如 dbms_lock sleep( );表示暂停 秒     [Q]怎么样快速计算事务的时间与日志量  [A]可以采用类似如下的脚本  DECLARE   start_time NUMBER;  end_time NUMBER;  start_redo_size NUMBER;  end_redo_size NUMBER;  BEGIN  start_time := dbms_utility get_time;  SELECT VALUE INTO start_redo_size FROM v$mystat m v$statname s   WHERE m STATISTIC#=s STATISTIC#  AND s NAME= redo size ;   transaction start  INSERT INTO t   SELECT * FROM All_Objects;    other dml statement  MIT;  end_time := dbms_utility get_time;  SELECT VALUE INTO end_redo_size FROM v$mystat m v$statname s   WHERE m STATISTIC#=s STATISTIC#  AND s NAME= redo size ;  dbms_output put_line( Escape Time: ||to_char(end_time start_time)|| centiseconds );  dbms_output put_line( Redo Size: ||to_char(end_redo_size start_redo_size)|| bytes );  END;    [Q]怎样创建临时表  [A] i以上版本  create global temporary tablename(column list)  on mit preserve rows; 提交保留数据 会话临时表  on mit delete rows; 提交删除数据 事务临时表  临时表是相对于会话的 别的会话看不到该会话的数据     [Q]怎么样在PL/SQL中执行DDL语句  [A] i以下版本dbms_sql包   i以上版本还可以用  execute immediate sql;  dbms_utility exec_ddl_statement( sql );    [Q]怎么样获取IP地址  [A]服务器( 以上) utl_inaddr get_host_address  客户端 sys_context( userenv ip_address )    [Q]怎么样加密存储过程  [A]用wrap命令 如(假定你的存储过程保存为a sql)  wrap iname=a sql  PL/SQL Wrapper: Release Production on Tu cha138/Article/program/Oracle/201311/16737

相关参考

知识大全 Oracle FAQ 之备份与恢复篇

OracleFAQ之备份与恢复篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  [Q]如何开启/

知识大全 Oracle FAQ 2003.02精华

OracleFAQ2003.02精华  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Q:如何使用

知识大全 FAQ for the Oracle Intelligent Agent 9.0.1

FAQfortheOracleIntelligentAgent9.0.1  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 一道物理题.急.望各位大侠指教.

一道物理题.急.望各位大侠指教.自创答案,不知对否;设击穿后,m速度为V1,M速度是V2,则:mV=m*V1+M*V20.5*m*V1*V1=m*g*h2h=V2T-0.5*g*T*T+V1T-0.5

知识大全 微软.Net程序设计FAQ

微软.Net程序设计FAQ  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何在net的应用程序运

知识大全 JGraph 经典常见问题解答 (FAQ)

JGraph经典常见问题解答(FAQ)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  怎样打开/

知识大全 CF开发Smartphone应用程序 FAQ

CF开发Smartphone应用程序FAQ  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 2003 冬季 Java FAQ

2003冬季JavaFAQ  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    JSP内置对象  

知识大全 精典SQL FAQ收藏

SQL高手篇:精典SQLFAQ收藏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  行列转换普通 

知识大全 oracle常用目录结构

  oracle常用目录结构  大多数情况下了解Oracle常用目录结构将大大提高数据库管理与维护的工作效率本文介绍了Oracleg的常用目录  关于Linux下Oralce的安装请参照  VmWar