sql2005 链接服务器 连接Oracle...
一、建立链接服务器
有人喜欢调用系统过程来建立,但我个人对系统过程没有特别的学习 ,所以用的是界面设置,当然有兴趣也可以研究一下的,因为可以把SQL执行导出来。
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'TEST2', @srvproduct=N'ORCL', @provider=N'OraOLEDB.Oracle', @datasrc=N'TEST2'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'use remote collation', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST2', @locallogin = N'sa', @useself = N'False', @rmtuser = N'IFSAPP', @rmtpassword = N'IFSAPP'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST2', @locallogin = NULL , @useself = N'False', @rmtuser = N'IFSAPP', @rmtpassword = N'IFSAPP'
GO
如上,EXEC master.dbo.sp_addlinkedserver @server = N'TEST2', @srvproduct=N'ORCL', @provider=N'OraOLEDB.Oracle', @datasrc=N'TEST2' 是在系统里建立链接。
注意,要建立链接之前,要在SQL数据库所在服务器先安装Oracle的客户端,并配置好Oracle的实例连接。
@server = N'TEST2' 这个是参数设定链接服务器名称。
&nbs
相关文档:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
from V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS > 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS ......
第一种方法:使用NVL函数处理NULL值。
其语法格式是NVL(exp1,exp2)。其中参数exp1和exp2可以使任意数据的类型,但两者数据类型必须匹配。示例:select ename,sal,comm,sal+nvl(comm,0) as salary from emp;
第二种方法:使用NVL2函数处理NULL值。
其语法格式是NVL2(exp1,exp2,exp3)。这是oracle9i新增加的函数。如果exp1 ......
1 当使用group by时,未在group by 部分用到的表列在s e l e c t部分出现时必须使用分组函数。
select last_name, state_cd, sum(sales) from customer group by last_name;
ERROR at line 1:
ORA-00979: not a GROUP BY expression.
state_cd应该使用分组函数,m a x ( )、m i n ( )、s u m ( )、c o u n t ( )或a v g ......
Oracl 数据库也没有个半段表是否存在,存在则删除的语句,经过研究和改写他人的方法先隆重推出绝对能用性的Oracle判断表是否存在,存在则删除方法,在Oracle10g上试验通过。
方法
CREATE OR REPLACE FUNCTION PROC_NAME(T_NAME IN VARCHAR2) RETURN NUMBER IS
V_CNT number;
V_SQL VARCHAR2(100);
......
根据用户导出语句:
1.数据库导出
exp system/jade@JADE_166.111.134.26 file=d:\jade.dmp statistics=none
说明:
syste是用户名
jade是密码
JADE_166.111.134.26是SID标示
file=d:\jade.dmp 是导出文件的路径及文件名
2.数据库导入
imp system/jade@JADE_166.111.134.26 file=d:\jade.dmp fromuser=syst ......