當前位置:首頁 » 編程語言 » oracle訪問sql

oracle訪問sql

發布時間: 2023-09-19 09:29:58

1. oracle 直接訪問sqlserver

1、在安裝了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows機器上(IP:192.168.0.2), 產品要選了透明網關(Oracle Transparent Gateway)里訪問Microsoft SQL Server資料庫

$ORACLE9I_HOME\tg4msql\admin下新寫initpubs.ora和initnorthwind.ora配置文件.

initpubs.ora內容如下:

HS_FDS_CONNECT_INFO="SERVER=SQLSERVER_HOSTNMAE;DATABASE=pubs"

HS_DB_NAME=pubs

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

initnorthwind.ora內容如下:

HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=Northwind"

HS_DB_NAME=Northwind

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

$ORACLE9I_HOME\network\admin 下listener.ora內容如下:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = test9)

(ORACLE_HOME = d:\oracle\ora92)

(SID_NAME = test9)

)

(SID_DESC=

(SID_NAME=pubs)

(ORACLE_HOME=d:\Oracle\Ora92)

(PROGRAM=tg4msql)

)

(SID_DESC=

(SID_NAME=northwind)

(ORACLE_HOME=d:\Oracle\Ora92)

(PROGRAM=tg4msql)

)

)

重啟動這台做gateway的windows機器上(IP:192.168.0.2)TNSListener服務.

(凡是按此步驟新增可訪問的SQL Server資料庫時,TNSListener服務都要重啟動)

2、ORACLE8I,ORACLE9I的伺服器端配置tnsnames.ora, 添加下面的內容:

pubs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

)

(CONNECT_DATA =

(SID = pubs)

)

(HS = pubs)

)

northwind =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

)

(CONNECT_DATA =

(SID = northwind)

)

(HS = northwind)

)

保存tnsnames.ora後,在命令行下

tnsping pubs

tnsping northwind

出現類似提示,即為成功

Attempting to contact (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)

(PORT = 1521))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))

OK(20毫秒)

Attempting to contact (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)

(PORT = 1521))) (CONNECT_DATA = (SID = northwind)) (HS = northwind))

OK(20毫秒)

設置資料庫參數global_names=false。

設置global_names=false不要求建立的資料庫鏈接和目的資料庫的全局名稱一致。global_names=true則要求, 多少有些不方便。

oracle9i和oracle8i都可以在DBA用戶下用SQL命令改變global_names參數

alter system set global_names=false;

建立公有的資料庫鏈接:

create public database link pubs

connect to testuser identified by testuser_pwd using 'pubs';

create public database link northwind

connect to testuser identified by testuser_pwd using 'northwind';

(假設SQL Server下pubs和northwind已有足夠許可權的用戶登陸testuser,

密碼為testuser_pwd)

訪問SQL Server下資料庫里的數據:

select * from stores@pubs;

...... ......

select * from region@northwind;

...... ......

3、使用時的注意事項

ORACLE通過訪問SQL Server的資料庫鏈接時,用select * 的時候欄位名是用雙引號引起來的。

例如:

create table stores as select * from stores@pubs;

select zip from stores;

ERROR 位於第 1 行:

ORA-00904: 無效列名

select "zip" from stores;

zip

-----

98056

92789

96745

98014

90019

89076

已選擇6行。

用SQL Navigator或Toad看從SQL Server轉移到ORACLE里的表的建表語句為:

CREATE TABLE stores

("stor_id" CHAR(4) NOT NULL,

"stor_name" VARCHAR2(40),

"stor_address" VARCHAR2(40),

"city" VARCHAR2(20),

"state" CHAR(2),

"zip" CHAR(5))

PCTFREE 10

PCTUSED 40

INITRANS 1

MAXTRANS 255

TABLESPACE users

STORAGE (

INITIAL 131072

NEXT 131072

PCTINCREASE 0

MINEXTENTS 1

MAXEXTENTS 2147483645

)

/

總結:

WINDOWS下ORACLE9i網關伺服器在$ORACLE9I_HOME\tg4msql\admin目錄下的initsqlserver_databaseid.ora

WINDOWS下ORACLE9i網關伺服器listener.ora裡面

(SID_DESC=

(SID_NAME=sqlserver_databaseid)

(ORACLE_HOME=d:\Oracle\Ora92)

(PROGRAM=tg4msql)

)

UNIX或WINDOWS下ORACLE8I,ORACLE9I伺服器tnsnames.ora裡面

northwind =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

)

(CONNECT_DATA =

(SID = sqlserver_databaseid)

)

(HS = sqlserver_databaseid)

)

sqlserver_databaseid一致才行.
來自(http://www.enet.com.cn/article/2004/0212/A20040212285219.shtml)

2. oracle怎麼用命令執行sql文件

Oracle執行外部文件:
c:>sqlplus user/pwd@db
sql>@new.sql
執行多個sql文件:
1.把所有的文件都放在同一個目錄下,然後在命令行里執行命令:
c:>dir/b > d:/1.sql
會把所有的sql文件名都輸出到一個sql文件中。
2.用UltraEdit打開生成的sql文件,alt+C切換到column mode,給所有的行前都添加一個"@",保存。
3.在sqlplus中執行"@d:/1.sql"
如何避免'&'字元:
sql中&可以傳遞參數,但有時需要插入'&',例:
SQL> select '&hello' v from al;
輸入 hello 的值: hello
原值 1: select '&hello' v from al
新值 1: select 'hello' v from al
v
-----
hello
可以使用如下方法避免:
A:
SQL> select chr(38) || 'hello' v from al;
V
------
&hello
B:
SQL> set define off
SQL> select '&hello' v from al;
V
------
&hello

3. oracle怎麼導入sql文件

  • PL/SQL登錄到資料庫,使用tools工具進行導入。使用plsql登錄到需要導入數據的資料庫。點擊工具欄上【tools】--【Import tables】

熱點內容
安卓什麼軟體測試手機電池 發布:2025-02-02 04:28:52 瀏覽:991
手機上傳快 發布:2025-02-02 04:27:46 瀏覽:306
電腦配置詳解圖解都有哪些 發布:2025-02-02 04:26:27 瀏覽:714
景區應該有什麼配置 發布:2025-02-02 04:09:08 瀏覽:119
c語言與java工作 發布:2025-02-02 03:59:57 瀏覽:282
qq買什麼不要支付密碼 發布:2025-02-02 03:50:29 瀏覽:495
android讀取視頻 發布:2025-02-02 03:46:57 瀏覽:826
手機號序列碼的密碼在哪裡 發布:2025-02-02 03:29:34 瀏覽:878
安卓怎麼換回鴻蒙系統 發布:2025-02-02 03:24:35 瀏覽:513
完美國際鄰水鎮箱子密碼是多少 發布:2025-02-02 03:17:04 瀏覽:625