C++ 通过C&x2B+;方法返回到Pro*C过程

C++ 通过C&x2B+;方法返回到Pro*C过程,c++,oracle-pro-c,C++,Oracle Pro C,我知道在Pro*C中,可以向过程传递主机变量或字符串文字: dbms_pipe.purge(:pipe_name); dbms_pipe.purge('pipe_name'); 是否可以将方法返回传递给Pro*C过程?以下呼叫无效: dbms_pipe.purge(pipe_name.c_str()); 迟交的答复,但仍然: 首先,Pro*C相当愚蠢。从C模式切换到C++模式时,它会变得更加愚蠢 您的第二个示例根本不挑战Pro*C,因为字符串常量只是sql语句的一部分。 你的第一个例子就是

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

dbms_pipe.purge(:pipe_name);

dbms_pipe.purge('pipe_name');
是否可以将方法返回传递给Pro*C过程?以下呼叫无效:

dbms_pipe.purge(pipe_name.c_str());
迟交的答复,但仍然: 首先,Pro*C相当愚蠢。从C模式切换到C++模式时,它会变得更加愚蠢

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

首先,您可能应该更正对
pipe\u name.c\u str()
的函数调用。其次,实际上并不是传递变量,而是传递成员函数
c_str
返回的值,这是一个c样式的字符串。