MsSql 和 Oracle 跨数据库查询
SQL
insert into table_name(colum1,colum2)
select colum1,colum2
from opendatasource('sqloledb','data source=服务器名;user id=用户名 ;password=密码 ').database_name.dbo.table_name
如执行出现以下错误”sql server 阻止了对组件 \'ad hoc distributed queries\' 的访问“,解决方法如下:
启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
oracle
oracle 中添加配置
test=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.221.0.1)(PORT = 1001))
)
(CONNECT_DATA =
(SERVICE_NAME = servname)
)
)
create public database link linkname connect to 用户名 identified by 密码
using 'test'
select * from table_name@linkname
注意有时候会报 "insufficienct privilege" 请确定角色中是否开通connect的权限哦
相关文档:
# LISTENER.ORA Network Configuration File: /opt/oracle/product/9.2/network/admin/listener.ora
# Generated by Oracle configuration tools.
ORA92 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS ......
关于oracle的行级锁
在oracle中,行级锁只对用户正在访问的行进行锁定。
如果该用户正在修改某行,那么其他用户就可以更新同一表中该行之外的数据。
行级锁是一种排他锁,防止其他事务修改此行,但是不会阻止读取此行的操作
。
在使用INSERT、UPDATE、DELETE 和SELECT…FOR UPDATE 等语句时 ......
我们都知道ORACLE不会发生锁升级,锁对于ORACLE来说并不是稀缺资源,为什么DML lock对于ORACLE来说不是稀缺资源,下面来寻找答案。
SQL> select * from emp where sal>2999;
EMPNO ENAME JOB MGR HIREDATE ......
1. 创建 Sequence
使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限):
CREATE SEQUENCE test_sequence
INCREMENT BY 1 -- 每次加的个数据
START WITH 1 -- 从1开始计数
NOMAXVALUE& ......