如何执行已经存在的PL/SQL。 (甲骨文顶点 21.1)

How to execute PL/SQL that already exists. (Oracle APEX 21.1)

如何显示 PL/SQL“PR_TEXT_CONCAT”的结果?

我想将该结果显示到第 3 页。此页面有 3 个文本字段和 1 个按钮。

P3_TEXT1P3_TEXT2中输入文字,然后按下按钮(P3_EXECUTE),在P3_TEXTOUT上显示字符串P3_TEXT1 + P3_TEXT2。 该过程是使用以下 SQL.

创建的
CREATE OR REPLACE PROCEDURE PR_TEXT_CONCAT
{
  PARAM1 IN VERCHAR2,
  PARAM2 IN VERCHAR2, PARAM2 IN VERCHAR2,
  PARAMOUT OUT VERCHAR2
}
IS
BEGIN
    PARAMOUT := 'SHOP: ' || PARAM1 || '+' || PARAM2;
END;

---已添加-- 它写在 PL/SQL 动态内容区域。 Source - PL/SQL Code: :PARAMOUT := PR_TEXT_CONCAT;

我是这样做的

  • 创建了 3 个项目 + 1 个按钮
  • 创建了一页流程 (1)
  • 运行 页面
  • 在字段中输入一些文本
  • 点击按钮看到输出(2)

(1) 内页进程:P2_TEXTOUT := :P2_TEXT1 || :P2_TEXT2;

(2) 个例子

2nd way:

create or replace function textOut (vText_1 in varchar2, vText_2 in varchar2) 
return varchar2 is

vTextOut varchar2(20);

begin

vTextOut := vText_1 || vText_2;

return vTextOut;
end;

然后在你的页面处理源中调用这个函数;

select textOut (:p2_text1, :p2_text2) into :p2_textout from dual;

以下是使用存储过程执行此操作的方法。请注意,您的代码中存在一些错误(花括号和“VERCHAR”均未在 oracle 中使用)

  1. 创建过程
CREATE OR REPLACE PROCEDURE PR_TEXT_CONCAT
(
  PARAM1 IN VARCHAR2,
  PARAM2 IN VARCHAR2,
  PARAMOUT OUT VARCHAR2
)
IS
BEGIN
    PARAMOUT := 'SHOP: ' || PARAM1 || '+' || PARAM2;
END;
/
  1. 创建顶点页面
  • 创建一个包含 3 个项目的区域:P1_ITEM1、P1_ITEM2 和 P1_ITEM3
  • 使用“提交页面”操作创建区域按钮
  • 使用点“Processing”和代码创建页面进程
PR_TEXT_CONCAT
(
  PARAM1 => :P1_ITEM1,
  PARAM2 => :P1_ITEM2,
  PARAMOUT => :P1_ITEM3
);

这应该可以。在项目 1 和项目 2 中输入一个值,然后单击按钮。第 3 项将包含从存储过程返回的值