oracle实例名、数据库名与服务名的理解
实例名(instance_name),一个用于数据库和操作系统之间通信的标志,数据库和操作系统之间要进行交互用的就是实例名,实例名可以和数据库名相同,一会再说数据库名,一般一个数据库名对应一个实例名,一对一关系,但在oracle的集群应用中,数据库名和实例名就是一对多的关系了。
查看实例名:select instance_name from v$instance;
oracle_sid与instance_name的关系:同样都是实例名,instance_name是oracle数据库参数,而oracle_sid是操作系统环境变量,操作系统所访问的实例名,必须是oracle_sid,oracle_sid必须与instance_name一致。
数据库(db_name)名就是数据库的唯一标识,相当于人的身份证一样,数据库名在创建时应该就要考虑好,后面尽量不要修改,因涉及修改的地方比较多,容易出错,在创建数据库create database时,其中的参数必须是DB_name,否则会出错,修改数据库时同理。注,这边的创建数据库其实是创建数据库文件,也就是俗称的用户。
查看当前数据库名:select name from v$database;
服务名(service_name),一般来讲,数据库服务名与数据库名相同。
查看服务名:select value from v$parameter where name = 'service_name';
上述均为个人观点,如有不对请多多指正,共同进步!
相关文档:
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_ ......
The following are number examples for the to_char
function.
to_char
(1210.73,
'9999.9')
would return '1210.7'
to_char
(1210.73,
'9,999.99')
would return '1,210.73'
to_char
(1210.73,
'$9,999.00')
would return
'$1,210.73'
to_char
(21,
'000099')
would return '000021'
The foll ......
最近发现一个比较有意思的问题:
当我们在执行一条查询语句时,如果条件谓词中含有函数,如 abs(age)<10,此时,通过查询计划看到的结果集的基数值与实际的值相差很大。当我们改变查询条件时,如abs(age)<20,这时的基数值不会改变,和abs(age)<10得到的基数值一样。
但现在还没找到问题的原因,searching... ......
把数据从一个表复制到另一个表,插入新数据或替换掉老数据是每一个ORACLE DBA都会经常碰到的问题。在ORACLE9i以前的年代,我们要先查找是否存在老数据,如果有用UPDATE替换,否则用INSERT语句插入,其间少不了还有一些标记变量等等,繁琐的很。现在ORACLE9i专为这种情况提供了MERGE语句,使这一工作变得异常轻松,
MERGE语 ......