扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1)首先要有java连接oracle数据库的驱动类,下载好后导入到工程里
创新互联建站是一家集网站建设,锡林郭勒盟企业网站建设,锡林郭勒盟品牌网站建设,网站定制,锡林郭勒盟网站建设报价,网络营销,网络优化,锡林郭勒盟网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
2)代码:
import java.sql.*;
public class JDBCTest {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args)
throws ClassNotFoundException, SQLException{
//1.准备参数
String ip = "192.168.0.26";
String sid = "tarena";
String port = "1521";
String dbUser = "openlab";
String dbPassword = "open123";
String driver
= "oracle.jdbc.driver.OracleDriver";
//2.构造驱动实例
Class.forName(driver);
//3.创建连接
//连接字符串是固定的形式,oracle的形式:
String url
= "jdbc:oracle:thin:@"
+ ip + ":" + port + ":" + sid;
Connection conn
= DriverManager.getConnection
(url, dbUser, dbPassword);
//4.执行SQL语句
String sql = "select id, password, name from user_sd1104 " +
"where id = 1001 and password = '1234'";
Statement stmt = conn.createStatement();
ResultSet rs
= stmt.executeQuery(sql);//执行sql语句
while(rs.next()){
int id = rs.getInt(1);
String pwd = rs.getString(2);
String name = rs.getString(3);
System.out.println("welcome," + name);
}
rs.close();
stmt.close();
conn.close();
}
}
1.在你的本机里面的tnsnames.ora里面加入链接数据库的实例名属性。
2.在你的本机的你的要链接的用户下输入下列命令即完成连接:
CREATE DATABASE LINK 你要取的名字
CONNECT TO 你需要访问的用户名 IDENTIFIED BY 密码
USING '你加入tnsnames.ora的实例名';
3.这时你就可以直接访问远程服务器的数据了:
select * from tab@你要取的名字;
select a.col1,b.col1 from table1@你要取的名字1 a, table1@你要取的名字2 b where......;
如果你要建Oracle RAC的话,就不是链接概念了,不是上面所说!
如何创建,授权和链接oracle数据库的普通用户
安装好oracle数据库后进入cmd命令界面(win+R),首先以管理员身份链接数据库,有两种办法:
1.输入sqlplus,然后输入管理员用户名(system)和口令密码即可链接成功。
2.输入sqlplus “/as sysdba”即可链接成功。
修改本地oracle的tnsnames.ora文件即可。
以oracle10g为例,一般路径为:~\oracle\product\10.2.0\db_1\network\ADMIN
打开如图文件:
在文件底部添加一段内容:
本地连接名 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 服务器主机名或服务器IP)(PORT = 服务器oracle端口号,一般默认为1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 服务器实例名)
)
)
注意:上段内容中的中文部分需要跟管理员索取,然后才能配置成功。
SQL SERVER连接oracle数据库几种方法
--1 方式
--查询oracle数据库中的表
SELECT *
FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;User ID=DAIMIN;Password=DAIMIN'
)..DAIMIN.JOBS
--在sqlserver中创建与oracle数据库中的表同名的表
select * into JOBS from
OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;User
ID=daimin;Password=daimin'
)..DAIMIN.JOBS
select * from JOBS
--2、方式
--在master数据库中查看已经存在的链接服务器
select * from sysservers
EXEC sp_addlinkedserver
@server = 'GE160',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'GE160'
exec sp_addlinkedsrvlogin 'GE160', false, 'sa', 'daimin', 'daimin'
--要在企业管理器内指定登录帐号
exec sp_dropserver GE160
select * from GE160..DAIMIN.JOBS
delete from GE160..DAIMIN.JOBS
--备注:引用ORACLE服务器上的表时,用户名称与表名一定要大写字母。
SELECT *
FROM OPENQUERY(GE160, 'SELECT * FROM DAIMIN.JOBS')
--3、方式
SELECT a.*
FROM OPENROWSET('MSDAORA',
'GE160';'DAIMIN';'DAIMIN',
DAIMIN.JOBS) AS a
ORDER BY a.JOB_ID
--4、方式 ODBC
--ODBC方式比较好办
SELECT A.*
FROM
OPENROWSET('MSDAORA','GE160';'DAIMIN';'DAIMIN', --GE160是数据源名
DAIMIN.JOBS) AS
A
ORDER BY A.JOB_ID
你是要 dblink 到另外一个 oracle? 还是 dblink 到一个 sql server ?
注:
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
SQL CREATE DATABASE LINK mydblink
2 CONNECT TO test IDENTIFIED BY test123
3 USING '(DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.210)(PORT = 1521)))
6 (CONNECT_DATA = (SERVICE_NAME = orcl)
7 )
8 )';
Database link created.
SQL select count(1) from user_tables@mydblink;
COUNT(1)
----------
6
上面的例子,是在当前 Oracle 数据库上面,创建一个 名字叫 mydblink 的数据库链接。
使用 test作为用户名,test123 作为密码。
访问的远程数据库,ip地址是 192.168.1.210,端口号是默认的 1521
远程服务器的服务名是 orcl
Oracle 连接 SQL Server
需要去下载 额外的 网关程序
注意:
本次测试
Oracle (10.2.0.1.0) 服务器 ip 地址: 192.168.1.210
SQL Server (2005 开发者版本) 服务器名(SQL2005)
下载下来的
10201_gateways_win32.zip
该 gateways 程序
可安装在 SQL Server 那台计算机上
本次网关程序,被安装在
D:\oracle\product\10.2.0\tg_1
目录下.
安装过程会提示输入 SQL Server 数据库的信息。
该信息会被生成在
D:\oracle\product\10.2.0\tg_1\tg4msql\admin
目录下的
inittg4msql.ora
文件中。
将其复制粘贴为文件名
initTest2005.ora
然后修改内容
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=SQL2005.test
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
下一步,修改
D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN
目录下的
listener.ora
文件。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = extproc)
)
# 追加开始
(SID_DESC =
(SID_NAME = Test2005)
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = tg4msql)
)
# 追加结束
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = SQL2005)(PORT = 1521))
)
)
下一步,运行 lsnrctl stop / lsnrctl start
C:\lsnrctl stop
输出略...
C:\lsnrctl start
部分输出略...
服务 "Test2005" 包含 1 个例程。
例程 "Test2005", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
下一步,修改
D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN
目录下的
tnsnames.ora
文件
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
# 追加开始
TEST2005 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SQL2005)(PORT = 1521))
)
(CONNECT_DATA =
(SID = Test2005)
)
(HS = OK)
)
# 追加结束
tnsping 测试是否正常。
C:\tnsping test2005
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-10月-
2011 14:03:03
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:\oracle\product\10.2.0\tg_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = SQL2005)(PORT = 1521))) (CONNECT_DATA = (SID = Test2005)) (HS = OK))
OK (50 毫秒)
创建数据库链接 (DBLINK)
CREATE DATABASE LINK mssql2005
CONNECT TO "test" IDENTIFIED BY "test123"
USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = SQL2005)(PORT = 1521))
(CONNECT_DATA = (SID = Test2005)
(HS = OK)
)
)';
SELECT * FROM test@mssql2005;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流