如何不允许在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谢谢。
发布于 2022-09-30 09:22:23
假设您的id列是整数,则必须将其与整数文本、整数列或其结果为整数的其他表达式进行比较。你现在的版本:
SELECT id, customername FROM customers WHERE id = '1' || '5'可以通过使用TO_NUMBER()将整数转换为整数来工作。
SELECT id, customername FROM customers WHERE id = TO_NUMBER('1' || '5')发布于 2022-09-30 11:34:01
使用绑定参数:
SELECT id, customername FROM customers WHERE id = :v_id;然后,用户可以使用您使用的任何前端接口指定绑定变量:v_id的值,它只能是单个值,如15或单个字符串'10+5' (它是包含字符的单个标量字符串值,然后是0,然后是+,然后是5,不会被计算为数值操作)。
https://stackoverflow.com/questions/73906480
复制相似问题