在Oracle APEX中传递变量PL/SQL
问题描述:
我在APEX中构建了一个简单的应用程序。我的一个网页是一个报告,并为区域来源我有一些代码来达到这个效果。我收到错误消息是在Oracle APEX中传递变量PL/SQL
ORA-00904: "var_out": invalid identifier
本质变量:form_variable从一个搜索框来了,我可以传递到查询字符串罚款(即替换“变量”和“:form_variable”,但我想它首先传递到一个函数,并把该输出到字符串来代替。我敢肯定,这是简单的东西,但对我的生活我不能工作了怎么办。
DECLARE
variable VARCHAR2(10);
query VARCHAR2(1000);
-- Where var_out is an output
BEGIN
myfunction(:form_variable, var_out);
variable := var_out;
query := 'SELECT * FROM TABLE WHERE column = variable';
RETURN query;
END;
谢谢
答
你需要声明你的变量,var_out
,在你的声明块中。
DECLARE
var_out VARCHAR2(10);
query VARCHAR2(1000);
-- Where var_out is an output
BEGIN
myfunction(:form_variable, var_out);
--variable := var_out;
query := 'SELECT * FROM TABLE WHERE column = '''||var_out||'''';
RETURN query;
END;
另外,您的查询字符串在您的示例中没有进行任何替换。如果你的过程myfunction输出清理了变量,你可以连接它。
没有必要为out参数声明2个变量。只要传递变量或var_out就足够了。另外,在将变量连接到查询时,请记住变量需要位于引号之间! - > column ='''|| variable ||'''';只是一个领导:) – Tom
@Tom良好的连接,抓住了这一点。而且,这个额外的变量是不需要的。 – Wolf
谢谢,这不是我的问题的全部范围,但解决了我用这些代码所遇到的麻烦。我发现我只需要连接两个撇号,而不是3.我的问题的其余部分与APEX说谎不喜欢我引用绑定变量而不使用if else语句来检查它是否已设置。 – leejmurphy