【问题标题】:Create email notification request link function创建邮件通知请求链接功能
【发布时间】:2021-05-17 03:42:12
【问题描述】:

我创建了一个函数来创建链接,但在创建变量时遇到错误,尝试声明但声明会出错

create or replace FUNCTION CREATE_REQUEST_LINK(request_id IN VARCHAR2, task_id IN VARCHAR2)

RETURN VARCHAR2 AS 

request_link varchar2(100);

BEGIN
first_half varchar2 := apex_mail.get_instance_url;
second_half varchar2 := 'f?p=&APP_ID.:&APP_PAGE.:&APP_SESSION.::::';

request_link := first_half + second_half;

  RETURN request_link;
END WF_CREATE_REQUEST_LINK;

它在 8 号线和 9 号线返回

错误:PLS-00103:在预期以下情况之一时遇到符号“VARCHAR2”::=。 ( @ % ; 符号 "." 被替换为 "VARCHAR2" 以继续。

有没有办法解决。我对 Oracle Apex 有点陌生

另外一个问题,我在创建第二半时是否正确,计划是 $APP_SESSION.点击链接后会变成登录后的session id。

【问题讨论】:

    标签: oracle plsql oracle-apex


    【解决方案1】:
    • 您似乎想要声明两个局部变量first_halfsecond_half。变量声明需要在块的声明部分进行。
    • 当你声明一个varchar2 变量时,你需要提供一个长度。我猜你希望两个局部变量的最大长度为 100。
    • 字符串连接运算符是|| 不是+

    所以你可能想要类似的东西

    create or replace FUNCTION CREATE_REQUEST_LINK(
        request_id IN VARCHAR2, 
        task_id IN VARCHAR2)
      RETURN VARCHAR2 
    AS 
      request_link varchar2(100);
      first_half   varchar2(100) := apex_mail.get_instance_url;
      second_half  varchar2(100) := 'f?p=&APP_ID.:&APP_PAGE.:&APP_SESSION.::::';
    BEGIN
      request_link := first_half || second_half;
    
      RETURN request_link;
    END WF_CREATE_REQUEST_LINK;
    

    【讨论】:

    • 也许只是将 REQUEST_LINK 设置为 VARCHAR2(200)? (你知道,将两个 100 个字符长的字符串连接成一个 100 个字符长的变量是行不通的)(是的,我知道,对于 FIRST 和 SECOND 一半来说,100 可能太多了)。
    • @Littlefoot - 合理。我怀疑任何一半实际上会超过 50 个字符,但这将取决于原始海报的实例名称的样子。理想情况下,您会计算出事物的实际长度并适当地设置限制。
    猜你喜欢
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2023-01-06
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多