易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle dblink 的应用


1、用dblink链接oracle
(1)与平台无关的写法:
create public database
link cdt connect to apps
identified by apps using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.31.205.100)(PORT = 1541))
)
(CONNECT_DATA =
(SERVICE_NAME = CDT)
)
)'
(2)可以将单引号内的内容用一个服务名代替。而将其内容写在tnsname.ora中,这种写法有时不成功。
2、参考如下内容
俩台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
创建可以采用两种方式:
1、已经配置本地服务
create public database
link fwq12 connect to fzept
identified by neu using 'fjept'
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
2、未配置本地服务
create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)';
host=数据库的ip地址,service_name=数据库的ssid。
其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.
数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样
数据库全局名称可以用以下命令查出
SELECT * from GLOBAL_NAME;
查询远端数据库里的表
SELECT …… from 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
附带说下同义词创建:
CREATE SYNONYM同义词名FOR 表名;
CREATE SYNONYM同义词名FOR 表名@数据库链接名;
删除dblink:DROP PUBLIC DATABASE LINK linkfwq。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
3、用dblink链接sqlserver;
参考1:
通过dblink访问sqlserver数据库
通用网关
Oracle异构服务是包含在Oracle数据库中的一个模块,通过使用透明网关(Transparent Gatewa


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

Oracle计算时间差表达式

--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 from DUAL;
/*
相差豪秒数
----------
  86401000
1 row selected
*/
--获取两时间的相差秒数
select ce ......

Oracle时间类型数据为0的Bug

开发组在数据迁移时,报告发现一些数值为'0000/00/00'的date数据,导致数据迁移失败。
这个问题有点奇怪,因为在Oracle中,date类型的数据的取值范围是从-4712/12/31到9999/12/31之间,并且年份不能为0。也就是说'0000/00/00'是一个非法数据,不为Oracle所接受。
 
SQL> select to_date('0000-00-00', 'yyyy-mm- ......

Oracle常用Sql语句

1. 创建视图:
CREATE OR REPLACE VIEW SM_V_UNIT_AUTH AS
SELECT T2.UNIT_ID,
        T2.SUPER_UNIT_ID,
        T1.AUTH_ID,
        T1.AUTH_NAME,
        T1.A ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号