如何不允许在Oracle DWH中的特定列中使用算术运算符?
用户不得使用此用法:
SELECT id, customername FROM customers WHERE id = 10+5
或
SELECT id, customername FROM customers WHERE id = '1'+'5'
或
SELECT id, customername FROM customers WHERE id = '1' || '5'
用户必须使用此样式:
SELECT id, customername FROM customers WHERE id = 15
谢谢。
2条答案
按热度按时间i86rm4rw1#
假设您的
id
列是一个整数,则必须将其与整型文字、整型列或其结果为整型的其他表达式进行比较。您的当前版本:可以通过使用
TO_NUMBER()
强制转换为整数来使其工作:3qpi33ja2#
使用绑定参数:
然后,用户可以使用您正在使用的任何前端接口指定绑定变量
:v_id
的值,它只能是单个值,如15
或单个字符串'10+5'
(它是包含字符1
、0
、+
、5
的单个标量字符串值,不会作为数值运算进行计算)。