Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

đã thực thi một thủ tục được lưu trữ oracle từ máy chủ sql bằng cách sử dụng hàm truy vấn mở

Cuối cùng đã tìm ra một vài giải pháp - mấu chốt của vấn đề (đối với chúng tôi) là theo mặc định RPC bị vô hiệu hóa đối với các máy chủ được liên kết. Các tham số cho Rpc, Rpc Out và Use Remote Collation cần được đặt thành true. Thông tin thêm:

http://blog.sqlauthority.com/2007/10/18/sql-server-2005-fix-error-msg-7411-level-16-state- 1-server-is-not-configured-for-rpc /

Giải pháp bạn sử dụng sẽ phụ thuộc vào các yêu cầu đầu ra của thủ tục. Ví dụ đầu tiên trả về một giá trị đầu ra. Ví dụ thứ hai không có giá trị đầu ra nào được trả về (dữ liệu được thu thập trong một truy vấn tiếp theo).

Ví dụ 1

Thủ tục T2T_collect_all có hai tham số đầu vào (ngày bắt đầu và ngày kết thúc) và một tham số đầu ra (số hàng).

DECLARE @ l_i_parameter1 varchar (10)

DECLARE @ l_i_parameter2 varchar (10)

DECLARE @ l_i_parameter3 varchar (10)

DECLARE @ l_i_parameter4 varchar (10)

DECLARE @ l_o_parameter1 số nguyên

SET @ l_i_parameter1 ='2009/10/01'

SET @ l_i_parameter2 ='yyyy / mm / dd'

SET @ l_i_parameter3 ='2009/12/31'

SET @ l_i_parameter4 ='yyyy / mm / dd'

SET @ l_o_parameter1 =0

EXECUTE ('begin T2T_collect_all (to_date (?,?), To_date (?,?),?); End;', ​​

      @l_i_parameter1, 

      @l_i_parameter2,

      @l_i_parameter3, 

      @l_i_parameter4,

      @l_o_parameter1 OUTPUT

) TẠI ORA_DB;

Thông tin khác: http://blogs.msdn.com/joaquinv/archive/2008/10/23/execute-oracle-stored-procedure-in-sql-server.aspx

Ví dụ 2a

Thủ tục T2T_collect_allx chỉ có hai tham số đầu vào (ngày bắt đầu và ngày kết thúc).

EXECUTE ('begin T2T_collect_allx (SYSDATE - 40, SYSDATE); end;') ORA_DB;

Ví dụ 2b

CHỌN * TỪ OPENQUERY (ORA_DB, 'begin T2T_collect_allx (SYSDATE - 40, SYSDATE); end;')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. verify_queryable_inventory được trả về ORA-20008:Đã hết thời gian chờ

  2. Chọn riêng biệt trên đốm màu

  3. Khai báo ngoại lệ do người dùng xác định bằng phương pháp RAISE_APPLICATION_ERROR trong cơ sở dữ liệu Oracle

  4. Làm thế nào để hiển thị bản ghi có giá trị cao nhất trong Oracle?

  5. Sử dụng ngày trong ràng buộc kiểm tra, Oracle