代码之家  ›  专栏  ›  技术社区  ›  pilcrow

在pl/sql中引用动态sql的标识符

  •  1
  • pilcrow  · 技术社区  · 14 年前

    是否有PL/SQL函数或通用技术来引用不合格的标识符(例如, mytable )用于动态构造的SQL查询?部分或完全限定的标识符如何( a.b@c )?

    考虑这个人为的例子:

    CREATE PROCEDURE by_the_numbers(COL_NAME VARCHAR, INTVAL INTEGER) IS
      ...
    BEGIN
      -- COL_NAME is interpolated into SQL string
      -- INTVAL gets bound to :1
      stmt := 'SELECT * FROM tbl WHERE ' || COL_NAME || ' = :1';
      ...
    END
    

    …我们不想允许幼稚的SQL注入 COL_NAME (例如,“1=1或1”)。

    1 回复  |  直到 14 年前
        1
  •  3
  •   TTT    14 年前