ORACLE跨数据库操作,DBLINK的使用
前几天帮一个朋友弄ORACLE跨数据库的操作,共享下具体的操作流程:
一、不同IP的数据库(DBLINK)
本地数据库ip 10.56.7.26
远程数据库ip 233.215.219.8
1.在10.56.7.26数据库安装文件中,找到$ORACLE_HOME/network/admin/tnsnames.ora文件,
末尾添加
MEDIADBLINK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 233.215.219.8)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
2.登录到10.56.7.26数据库,创建database link,这里需要使用sysdba的角色登录,进行权限分配方可创建
执行如下sql语句:
create public database link MEDIADB
connect to smsuser identified by zonefree2better
using 'MEDIADBLINK';
创建完后使用,检查是否成功:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
3.在10.56.7.26中创建触发器
触发器中插入远程数据表sql:
create or replace trigger t_t_test
after insert on t_sta_bill
for each row
DECLARE
-- local variables here
BEGIN
--操作远程数据表
INSERT INTO t_test@MEDIADB
(USERID,USERNAME,PASSWORD)
VALUES (:NEW.USERID,:NEW.USERNAME,:NEW.PASSWORD);
END t_t_test;
二、同机器上的不同用户数据库 一台机器上的不同用户,可以使用
SELECT ssh2.A.* from SSH2.A, orcl.A WHERE ssh2.A.USER_ID = orcl.A.USER_ID ssh2、orcl为用户,A为数据表
相关文档:
在创建数据库时,SPFile文件中部分必须考虑的参数值:
基本规则
a.在SPFile文件中,所有参数都是可选的,也就是说只需要在初始化参数文件中列出那些需要修改的参数,其它保持默认值即可。
b.SPFile文件中只能包含参数赋值语句和注释语句。注释语句以“#”符合开头,是单行注释。
c.SPFile文 ......
要创建两个文件
1: runBatch.bat
2: sql.txt
runBatch.bat 内容如下:
sqlplus username/password @sql.txt
pause
sql.txt内容如下:
spool sql.log
create table t1(cname char(20));
insert into t1(cname) values('test');
select * from t1;
spool off
exit
双击runBatch.bat就可以批量执行sql.txt中 ......
Oracle 存储过程返回结果集用 ref cursor 实现。试验步骤如下:
1. 建立 ref cursor 类型和过程
CREATE OR REPLACE PACKAGE types
AS
TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2 ......