• 【转】SQL2008 链接Oracle 调用存储过程


    1. SQL链接ORACLE 都是可视化的操作 如下图:


    红色框选的是oracle的数据驱动,如果没有这个驱动 那需要单独安装oracle的client端 装完以后就有了。

    2.在创建之前,在SQLSERVER中,链接服务器->访问接口->OraOLEDB.Oracle->右键属性,选中 “Allow inprocess” (中文为:允许进程内)


    这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。
    如未设置会报如下错误:“无法初始化链接服务器 “null” 的 OLE DB 访问接口 “OraOLEDB.Oracle” 的数据源对象”

    3.创建好链接服务就可以在SQL端通过语句查询oracel的数据了 提供了两种查询方式
    1. SELECT* FROM 链接服务器名字..登录用户名.表名 注意:必须要全大写
    这种方式可以进行操作,优点是使用简单,一目了然,而缺点是性能太差,查询大数据量表很慢。效率太差。
    2. select * from openquery(链接服务器名字,’select * from oracle_table_name’);
    带查询参数:select * from openquery(链接服务器名字,’select * from test’) where test_id=10; test_id 是test表的字段
    关于链接服务查询 推荐方式2 速度更快。

    4.SQL调用oracle的存储过程

    --oracle创建存储过程
    CREATE OR REPLACE PROCEDURE SHOW_PROC(DEPT_NO INT, V_NAME OUT VARCHAR) IS
    BEGIN
    SELECT D.DNAME INTO V_NAME FROM DEPT D WHERE D.DEPTNO = DEPT_NO;
    END;
    1
    2
    3
    4
    5
    一个传入参数 一个返回参数。就是通过部门ID 返回部门名字

    SQL端调用

    declare @DEPTNO INT;--传入参数
    declare @V_NAME VARCHAR(20);--返回参数
    SET @DEPTNO=10;
    -- 调用存储过程
    EXEC('BEGIN SHOW_PROC(?,?);END;',@DEPTNO,@V_NAME output) at NC;
    print(@V_NAME);
    1
    2
    3
    4
    5
    6
    这里要注意返回参数,一定要加上Output,不然会报错。

    感谢这位博主的文章 解决我很大的问题 给我帮助很多 特别是调用oracle的存储过程。http://blog.sina.com.cn/s/blog_614b6f210100t80r.html
    ————————————————
    版权声明:本文为CSDN博主「Cc_Rain0624」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Cc_Rain0624/article/details/79100544

  • 相关阅读:
    Linux常用命令ifconfig的相关信息
    搭建路由实例
    httpclient以json形式参数调用http接口并解析返回的报文
    思考(机遇)
    php 对齐方法
    RequireJS简单介绍即使用
    一周小结(2016-06-06~2016-06-12)
    git介绍及使用
    一周小结(2016-05-30~2016-06-04)
    [转] Mou 一个Markdown工具 语法规则文档(最后)
  • 原文地址:https://www.cnblogs.com/tc310/p/11953175.html
Copyright © 2020-2023  润新知