怎样建立oracle数据库链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样建立oracle数据库链接相关的知识,希望对你有一定的参考价值。

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();

参考技术A 你看看这里的oracle服务都启动了没有,

你那个错误常见问题是在于我3箭头

所指向的监听服务未开启. 刚刚突然发现...

你用SYS登陆用基本模式登陆?你试试看DBA本回答被提问者和网友采纳

在 Oracle 和 Snowflake 之间建立数据库链接

【中文标题】在 Oracle 和 Snowflake 之间建立数据库链接【英文标题】:Setting up a database link between Oracle and Snowflake 【发布时间】:2021-09-03 19:58:40 【问题描述】:

以前有没有人在 Oracle 和 Snowflake 数据库之间实现过成功的数据库链接?

我正在使用 ODBC 连接到有问题的雪花数据,并且连接正常。我可以设置一个python脚本并查询数据,得到预期的回报。

我找到了this article with guidance on what to do,但在遵循该信息和 Snowflake 文档之后,Oracle 正在返回错误:

[Error] Execution (9: 20): ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ORA-02063: preceding line from TEST

前面几行是dblink:

CREATE PUBLIC DATABASE LINK TEST
CONNECT TO <snowflake_username>
IDENTIFIED BY <snowflake_password>
USING <tnsnames_address>;

如果有人以前做过此操作并遇到问题或提供有关 Snowflake 与其他 Oracle dblink 不同的配置指导,我们将不胜感激。

【问题讨论】:

Dg4odbc 将是一个很好的工具。首先正确配置odbc 并使用isql 进行测试验证。异构服务部分总是有点模糊。对驱动程序的引用应使用驱动程序管理器。 【参考方案1】:

这花了我相当多的调试才能开始工作,并且会说您需要非常好的 Oracle、ODBC 和 Unix 知识,但我的配置的主要细节和示例来自我拥有的测试框。

我会在有空的时候写一篇更详细的文章。

从 information_schema.databases@mysnowflakedb 中选择数据库名称;

DATABASE_NAME


DEMO_DB

INTL_DB

SMEW

SNOWFLAKE_SAMPLE_DATA

UTIL_DB

    安装 RPM 和依赖项

苏- rpm -i ./SnowflakeODBCDriverforUnix.rpm yum install unixODBC unixODBC-devel

    激活 30 天试用许可证:在 /opt/cdata/cdata-odbc-driver-for-snowflake/bin 中

./install-license.x64

    在 Oracle db 上创建 DB LINK:

创建数据库链接 mysnowflakedb 连接以使用“mysnowflakedb”测试由 Test1234 识别;

已创建所有者 DB_LINK 用户名主机


PSAMMY MYSNOWFLAKEDB 测试 mysnowflakedb 09-SEP-21

    更新 odbc.ini : 位于 /etc

[ODBC 数据源]

CData Snowflake Sys = 雪花的 CData ODBC 驱动程序

[CData雪花系统]

Driver= /opt/cdata/cdata-odbc-driver-for-snowflake/lib/libsnowflakeodbc.x64.so

url=https://xx12345.canada-central.azure.snowflakecomputing.com

用户=测试

密码=Test1234

数据库=DEMO_DB

仓库=COMPUTE_WH

RoleName=SYSADMIN

    更新 odbcinst.ini:位于 /etc

[ODBC 驱动程序]

CData ODBC Driver for Snowflake=已安装

[Snowflake 的 CData ODBC 驱动程序]

描述 = Snowflake 的 CData ODBC 驱动程序

Driver64 = /opt/cdata/cdata-odbc-driver-for-snowflake/lib/libsnowflakeodbc.x64.so

    创建 initmysnowflakedb.ora:位于 /hs/admin

HS_FDS_CONNECT_INFO = "CData 雪花系统"

HS_FDS_TRACE_LEVEL = 关闭

HS_FDS_SHAREABLE_NAME = /opt/cdata/cdata-odbc-driver-for-snowflake/lib/libsnowflakeodbc.x64.so

设置 ODBCINI=/etc/odbc.ini

    更新 listener.ora:位于 /network/admin

我为下面的 ODBC 详细信息创建了一个专用列表器

LISTENER_ODBC = (DESCRIPTION_LIST = (描述= (地址 =(协议 = TCP)(主机 = rac01-A.localdomain)(端口 = 1511)) (地址 =(协议 = IPC)(密钥 = EXTPROC1511)) ) )

SID_LIST_LISTENER_ODBC = (SID_LIST = (SID_DESC = (SID_NAME = mysnowflakedb) (ORACLE_HOME = /u01/app/oracle/product/19.6.0/db_3) (ENV="LD_LIBRARY_PATH=/opt/cdata/cdata-odbc-driver-for-snowflake/lib:/u01/app/oracle/product/19.6.0/db_3/lib") (PROGRAM = dg4odbc)) )

#启动监听器 lsnrctl start listener_odbc

    更新 tnsnames.ora:位于 /network/admin

mysnowflakedb = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST = rac01-a.localdomain )(PORT=1511)) (CONNECT_DATA=(SID=mysnowflakedb)) (HS=OK))

【讨论】:

以上是关于怎样建立oracle数据库链接的主要内容,如果未能解决你的问题,请参考以下文章

oracle 怎样添加索引

oracle怎样建立一个一模一样的表,急~在线等

在 Oracle 和 Snowflake 之间建立数据库链接

如何给oracle建立索引?建立索引后查询表施应该怎样使用,请高手解答,谢谢(不要百度内容)

在oracle数据库中,如何建立表与表之间的关系?

java与oracle要怎样连接?