sqlserver2000通过DB_LINK连接oracle,如何调用oracle的存储过程
答案:2 悬赏:50 手机版
解决时间 2021-03-06 17:41
- 提问者网友:我是我
- 2021-03-06 01:01
sqlserver2000通过DB_LINK连接oracle,如何调用oracle的存储过程
最佳答案
- 五星知识达人网友:雾月
- 2021-03-06 02:19
sqlserver2000通过DB_LINK连接oracle,如何调用oracle的存储过程
一个带参数的存储过程。
SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (
2 p_user_name VARCHAR2
3 ) AS
4 BEGIN
5 dbms_output.put_line('Hello ' || p_user_name || '!');
6 END HelloWorld1;
7 /
Procedure created.
SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 调用存储过程的 存储过程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /
Procedure created.
执行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!
PL/SQL procedure successfully completed.
一个带参数的存储过程。
SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (
2 p_user_name VARCHAR2
3 ) AS
4 BEGIN
5 dbms_output.put_line('Hello ' || p_user_name || '!');
6 END HelloWorld1;
7 /
Procedure created.
SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 调用存储过程的 存储过程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /
Procedure created.
执行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!
PL/SQL procedure successfully completed.
全部回答
- 1楼网友:一把行者刀
- 2021-03-06 03:01
一、创建sqlserver链接服务(sqlserver链接oracle)
首先sqlserver 链接oracle可以通过两个访问接口:
“msdaora” 和“oraoledb.oracle”
1、“msdaora”访问接口是由microsoft ole db provider for oracle提供的,这里建议不使用此接口进行链接。通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型clob、blob字段)时会报这个错误
技术分享
“
链接服务器""的 ole db 访问接口 "msdaora" 返回了消息 "发生了一个 oracle 错误,但无法从 oracle 中检索错误信息。"。
链接服务器""的 ole db 访问接口 "msdaora" 返回了消息 "数据类型不被支持。"。
消息 7321,级别 16,状态 2,第 1 行
准备对链接服务器 "" 的 ole db 访问接口 "msdaora" 执行查询"select * from sys_message"时出错。”
链接服务器 "link2oracle" 的 ole db 访问接口 "msdaora" 为列提供的元数据不一致。对象 ""cmcc"."os2_gis_cell"" 的列 "isopened" (编译时序号为 20)在编译时有 130 的 "dbtype",但在运行时有错。
2、“oraoledb.oracle” 访问接口是由oracle 的oracle probider for ole db 驱动提供的。它解决了两个数据库类型不一致的的问题。而且如果需要使用分布式事务,必须使用它来创建链接服务器。后文会有详细介绍。
在创建之前,在sqlserver中,链接服务器->访问接口->oraoledb.oracle->右键属性,选中 "allow inprocess" (中文为:允许进程内)
这一步是使我们选择的oraoledb.oracle接口打开执行操作。如未设置会报如下错误:
“无法初始化链接服务器 "null" 的 ole db 访问接口 "oraoledb.oracle" 的数据源对象"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯