0

我知道在 Pro*C 中可以将主机变量或字符串文字传递给过程:

dbms_pipe.purge(:pipe_name);

dbms_pipe.purge('pipe_name');

是否可以将方法返回传递给 Pro*C 过程?以下调用不起作用:

dbms_pipe.purge(pipe_name.c_str());
4

1 回答 1

2

迟到的答案,但仍然:首先,Pro*C 非常愚蠢。从 C 模式切换到 C++ 模式时,它变得更加愚蠢。

您的第二个示例根本不会挑战 Pro*C,因为字符串常量只是您的 sql 语句的一部分。你的第一个例子就是它可以做的。您不能访问结构的成员(但您可以读取整个结构)、调用函数或其他任何东西。解决这个问题的唯一方法是首先将函数调用的结果复制到主机变量中,然后将其传递给 Pro*C。要查找手册,请尝试 google 搜索“oracle pro*c 开发人员指南”。如果你仔细阅读它,你就会明白什么可以做,什么不能......

于 2015-02-24T21:07:31.503 回答