暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 根据调用源使用DBMS_OUTPUT或HTP

askTom 2018-06-12
496

问题描述

嘿,
我有这个程序:

procedure output(i_msg in varchar2)
is
begin
  dbms_output.put_line(i_msg);
  -- if call is from apex i want to use htp.p
end;


当调用者是apex应用程序时,是否可以将 “输出香奈儿” 切换到htp?我不想在程序中使用额外的参数来进行切换。只是问您如何确定调用是来自apex还是来自 “普通” Sql Developer/Sql Plus等。

谢谢,
卡洛斯

专家解答

您可以查看几个选项:

1) 是Apex应用程序用户集

procedure output(i_msg in varchar2)
is
begin
  if v('APP_USER') is null then
    dbms_output.put_line(i_msg);
  else
    htp.p(i_msg);
  end if;
end;


2) 这是一个基于PLSQL web的应用程序 (即使它不是apex)

procedure output(i_msg in varchar2)
is
  dummy varchar2(100);
begin
  dummy := owa_util.GET_CGI_ENV('REMOTE_ADDR');
  htp.p(i_msg);
exception
  when others then 
        dbms_output.put_line(i_msg);
end;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论