oracle DB_LINK 语法说明

创建DB_LINK的语法及说明

建立:

create  public database link oradb(db_link名) connect to username(远程数据库用户名) identified by password(远程数据库用户密码) using 'oradb';

如果省略public,则创建的是private的数据库连接,private的连接只能是当前创建DB_LINK的用户可以使用这个db_link,public表示数据库中所有的用户都可以使用这个db_link。

使用connect to username(远程数据库用户名) identified by password(远程数据库用户密码),表示通过dblink访问远程数据库时所使用的用户及密码。

oradb指的是database link的名字,如果本地数据库的global_names=true,则这个名字一定要使用远程数据库的global_name(可以在远程数据库上执行select * from global_name;得到)。否则在建立db_link的时候不会报错,而在执行查询时会报错,ORA-02085:
database link oradb connects to oradb.REGRESS.RDBMS.DEV.US.ORACLE.COM。

'oradb'指的是在本地数据库设置连接的远程数据库的tnsname(即tnsnames.ora设置的连接远程数据库的服务名)

 

db_link使用说明
<1>、当数据库参数global_name=false时,就不要求数据库链接名(db_link名)跟远端数据库的global_name名一样。
当用命令alter database rename global_name to oradb;进行域名修改时,修改的global_name(oradb)不会带默认的域名REGRESS.RDBMS.DEV.US.ORACLE.COM。

<2>、当数据库参数global_name=true时,那就要求数据库链接名(db_link名)跟远端数据库的global_name名一样,
当用命令alter database rename global_name to oradb;进行域名修改时,修改的global_name(oradb)是会带上默认的域名REGRESS.RDBMS.DEV.US.ORACLE.COM,在参数global_name=true情况下如果不需要带默认的域名,则可以执行下面语句进行解决
update props$ set value$ = 'oradb' where name = 'GLOBAL_DB_NAME';  commit;
或update global_name set global_name='oradb';  commit;

<3>、查询当前数据库中所创建的db_link可以通过如下命令实现:select * from dba_db_links;如果要删除建立的db_link,则可以通过如下命令实现:drop database link oradb(db_link名);

时间: 2024-08-01 02:19:10

oracle DB_LINK 语法说明的相关文章

sql语句-oracle sql语法问题。。。

问题描述 oracle sql语法问题... 创建一个触发器, create or replace trigger GX_ASSIGNMENT_trigger after insert on GX_ASSIGNMENT for each row declare tabname Varchar(200); insert_sql Varchar(200); begin select 'GX_ASSIGNMENT_'||to_char(sysdate,'yyyymmdd') into tabname

从零开始学Oracle—基本语法解析(二)

Oracle数据操作语言 DML 接上一篇: 2. DML语句(数据操作语言) Data Manupilate Language select insert delete update 特点:<1>对数据起作用的 <2> 这些语句的修改是在内存中发生的 要想改动存入库中必须要commit语句 查看当前用户的所有权限 select * from session_privs; 查看当前用户下的所有表 select * from tab where tabtype='TABLE'; 3.

MySQL与Oracle的语法区别详细对比 (转)

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

SQL Server vs Oracle 简单语法比较

        1.SQL SERVER变量必须以@开头.         2.SQL SERVER语句后不需要写分号结束符.         3.oracle变量类型number可以修改为sql server的decimal         4.oracle变量类型varchar2可以修改为sql server的varchar         5.SQL SERVER定义变量及传递参数,最好加上参数大小数值,例如:varchar(50)         6.SQL SERVER不能用ROWID

oracle 存储过程的基本语法

oracle|存储过程|语法 oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字 2.SELECT INTO STATEMENT  将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条  记录,否则抛出异常(如果没有记录抛出NO_DATA_FO

ORACLE 常用的SQL语法和数据对象

oracle|sql语法|对象|数据 一.数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT (字段名1, 字段名2, --) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY'如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个

Oracle存储过程基本语法

转自:http://blog.csdn.net/pg_roger/article/details/8877782 存储过程 1  CREATE OR REPLACE PROCEDURE 存储过程名 2  IS 3  BEGIN 4  NULL; 5  END;   行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGI

AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语法和升级TLSv1.2

Abstract 为了增加Sequence使用的灵活性,以及方便从不同数据库进行迁移,AliSQL增加了Sequence的兼容性,兼容了PostgreSQL和Oracle的Sequence语法. 为了保障数据传输安全,AliSQL使用OpenSSL来代替社区版的yaSSL,并把默认的,已经被PCI DSS v3.1标准废弃的TLSv1.0升级到TLSv1.2版本. 并修复了一个Semisync的未合理处理信号的bug, 感谢 boonie81 提交的bug issue#68 AliSQL REP

Oracle存储过程基本语法介绍_oracle

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删