构建一个引入APP_USER ID

时间:2015-05-18 18:46:03

标签: oracle-apex

我正在APEX中使用PL / SQL区域,我在其中构建了一个交互式报告链接,它将过滤USERs:APP_USER id的报告,并为他们提供仅限行的视图。

区域首先对行进行计数,以向用户显示他/她拥有的行数,然后将URL指向IR页面并过滤IR以获取其ID。例如......

SELECT count(*) INTO l_open_proj  FROM crd_mpl_upload WHERE LOWER(GLB_CPM_QID) = LOWER(:APP_USER);

稍后......我有构建网址的部分。

sys.htp.p('<li class="uNumber uGrid col_2">');    
sys.htp.p('<ahref="'||sys.htf.escape_sc('fp='||:APP_ID||':12:'||:APP_SESSION||':::12,RIR:**IR_GLB_CPM_QID:upper(:APP_USER)**:') ||'">');
sys.htp.p('<big class="uValue">' || l_open_proj || '</big>');
sys.htp.p('<small class="uLabel">My Projects</small>');
sys.htp.p('</a>');
sys.htp.p('</li>');

我遇到问题的部分是 IR_GLB_CPM_QID:upper(:APP_USER),因为:APP_USER这里没有通过用户NTLM身份验证的ID。我试过上下等等,我不知道那是问题。例如,ID将以P123456的形式出现。

非常感谢任何想法或帮助。

谢谢,

1 个答案:

答案 0 :(得分:1)

对APP_USER绑定变量的引用在字符串中,与其他字符串不同。

在这种情况下,用户&APP_USER.是安全的(不要忘记尾随点),但不要在SQL中使用此替换语法。

在这种情况下你也会遇到关于upper()的问题,虽然我不认为这是必要的吗?如果是这样,应该在SQL中完成。