【问题标题】:Execute a procedure on a shared server在共享服务器上执行过程
【发布时间】:2018-07-25 01:19:10
【问题描述】:

我有一个通过 ODBC 连接到 Oracle 数据库的 SQL Server。

在 sql 框中,我尝试使用以下命令调用测试过程:

EXEC ('CALL [WORKSPACE_NAME].[PKG_TEST.N_test]') AT [SHARED_SERVER];

我得到以下信息:

[Oracle][ODBC][Ora]ORA-00936:缺少表达式

这是一个不需要参数的简单包,要确认进程是否正常工作,只需简单更新:

procedure N_test 
as
begin
N_AUDIT.AUDIT_ITEM(1, 'Start');
    update N_audits
    set 
        AUDIT_IMAGE_ATTACHED = 'Y'
    where audit_id = 14; 
N_AUDIT.AUDIT_ITEM(2, 'Update complete');
commit;

end N_test;

如果我在 Oracle 中运行它,它会根据需要更新表。

我不确定我是否正确执行 SQL 调用。我可以使用以下方式获取信息:

EXEC ('SELECT * FROM WORKSPACE.TABLE') AT [SHARED_SERVER];

有了这个,我假设连接没问题,它是调用程序的问题。

我是新手,看不出哪里出错了。

【问题讨论】:

    标签: sql sql-server oracle odbc


    【解决方案1】:

    你不能只调用一个;你需要调用它的procedure或者一个function

    【讨论】:

    • @Littlefoot 我试图简化上面的字符串,我实际上调用了 PKG_TEST.update_table,其中 update_table 是函数
    • 看不到的代码很难调试。您是否有机会编辑问题并提供一些附加信息,例如您调用的过程名称(及其参数)?直接在 Oracle 数据库中运行时,该过程是否正常工作?不要过度简化信息,因为它具有误导性。例如,“SELECT TABLE”会引发相同的 ORA-00936。我们拥有更准确的信息,您会尽快得到答案。
    • 感谢您的反馈,我已经更新了更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多