您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Oracle-函数不起作用

Oracle-函数不起作用

student_no列的数据类型是什么?列名暗示它是一个NUMBER。但是,您正在调用lower它并将其与会话用户进行比较的事实意味着它是一个VARCHAR2

假设student_noVARCHAR2,则一个问题是您的谓词缺少该值周围的单引号。如果v_student_no是,例如“ jcave”,则您out_string

1=2 or student_no = jcave

由于未引用“ jcave”,因此Oracle假定它必须是标识符,因此它将在名为的表中查找列jcave。没有找到这样的列,它将引发错误。如果在字符串两边加上单引号,则会更有运气

out_string := out_string||'or student_no = '''||v_student_no||''' ';

可能还会有其他错误。您是否尝试过手动调用函数以查看其返回的确切信息?如果您在session_user设置为“ jcave”时手动调用了该函数,那么您应该已经看到缺少单引号的结果。如果您复制并粘贴返回值并将其添加SELECT语句的末尾,则会立即看到错误v$vpd_policy如果要避免手动调用函数,还可以查询以查看已添加到特定sql语句中的特定策略谓词- 当您尝试调试会话状态为VPD的VPD问题时,这非常有用。您不容易复制。

Oracle 2022/1/1 18:52:18 有355人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶