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

Gọi thủ tục được lưu trữ Oracle với VBA bằng cách sử dụng con trỏ

Tôi đã tình cờ tìm thấy một giải pháp. Nếu tôi không xác định tham số ref_cursor, nó sẽ hoạt động.

cmd.CommandText = "testproc"
cmd.ActiveConnection = cn
cmd.CommandType = adCmdStoredProc
Set param1 = cmd.CreateParameter("articlenr", adInteger, adParamInput, , 47)
Set param2 = cmd.CreateParameter("storenr", adInteger, adParamInput, , 281)
Set param3 = cmd.CreateParameter("cweek", adVarChar, adParamInput, 10, "201705")

'Next line not needed
'Set param4 = cmd.CreateParameter("prc", adVariant, adParamOutput, , Null)

cmd.Parameters.Append param1
cmd.Parameters.Append param2
cmd.Parameters.Append param3

'Next line not needed
'cmd.Parameters.Append param4

Set rs = cmd.Execute

Điều này hoạt động, rõ ràng là đặc tả ref_cursor không cần thiết và xảy ra theo mặc định :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL SQL cách chọn tất cả các cột

  2. đầu ra của hai truy vấn khác nhau do một kết quả trong SQL oracle

  3. Cách mã hóa dữ liệu trong Oracle bằng PL SQL

  4. Thủ tục PL / SQL đã hoàn thành thành công nhưng không hiển thị gì

  5. Oracle JDBC DriverManager.getConnection () bị treo