oracle 一句话技巧

oracle 一句话技巧
1:edi 编辑sql buffer中的sql语句
2:SPOOL C:/SQLTEST.TXT 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。SPOOL OFF ;CANCEL
3:set serveroutput on size unlimited format word_wrapped;
对于10gdbms_output.put_line的长度是没有限制
如果报错:buffer overflow,执行如下语句即可:
4:select to_char(SYSDATE,'yyyy/mm/dd/HH24/mi/ss ') from table;可以实现24小时
5: 列举5个10g的新特性。

答:1).自动共享内存(SGA)管理
2).自动存储管理(ASM)
3).ADDM和查询优化器
4).闪回表(flashback table)
5).Data Pump(expdp、impdp)
6: optimizer_mode影响一个SQL语句是否可以执行
show parameter optimizer_mode
alter session set optimizer_mode=choose;此时的执行计划是全表扫描 Execution Plan-----
alter session set optimizer_mode=first_rows; SQL开始使用PK进行索引扫描
[color=blue]7):create table emp2 as select * from emp where 1=1; 创建备份表数据和结构
insert into a select * from b 备份表数据
select * from dual order by 1 desc[/color]
8):select * from dba_users;
在oracle database 10g系统中可以使用 dba_roles,dba_role_privs,dba_sys_privs,role_sys_privs

9)
ORA-01425: 转义符必须是长度为 1 的字符串

SQL> select * from emp where ename like '%s_%'escape 's';

ENAME SAL
-------------------- ----------
_beyond 99
10)
当在select语句中同时包含多个子句时候 (where,group by,having,order by)
order by 必须是最后一个子句,为什么?给个理由!
11)当执行降序排序时,如果排序存在null值,那么null会显示在最前面

12):insert
当使用insert语句插入数据时,可以使用default关键字提供数值。
当制定default 时,存在默认值,则使用默认值,
如果不存在默认值,则自动null

http://tracyoracle.blogbus.com/logs/335217.html

13)oracle中缓存的机制是为了尽量的避免频繁的i/o操作。
计算机系统中最频繁的是磁盘的 i/o操作,当缓存中达到一定的程度的时候,
再批量的写入
14) oracle也称为面向对象的查询语言
case 1:可以自定义对象
下面是个案例 通过自定义t_air ,然后在表中引用
SQL> create type t_air as object(id int,name varchar(20));
2 /

Type created

SQL> create table aaa(id int,person t_air);

Table created

SQL> insert into aaa values(1,t_air(1,'23sdf'));

1 row inserted

SQL> select a.id,a.person.id,a.person.name from aaa a;

ID PERSON.ID PERSON.NAME
--------------------------------------- --------------------------------------- --------------------
15) 数据库名DB_NAME同数据库实例instance_name是一对多的关系
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
instance_name是oracle数据库参数 而ORACLE_SID是操作系统的环境变量

16) TNS:协议适配器错误
ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

17) 数据库域名
什么是数据库域名?
在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。举例说明如:
全国交通运政系统的分布式数据库,其中:
福建节点: fj.jtyz
福建厦门节点: xm.fj.jtyz
江西: jx.jtyz
江西上饶:sr.jx.jtyz
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain.

查询数据库域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在参数文件中查询。

18)全局数据库名
全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz

19)、数据库服务名
什么是数据库服务名?
从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。

查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在参数文件中查询。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值