小编shi*_*i92的帖子

带有 DBMS_ASSERT 的 Oracle SQL 注入块

此代码触发错误

  query_string := 'SELECT '||dbms_assert.sql_object_name(trim(both ' ' from return_field))|| 
                   ' FROM '||dbms_assert.schema_name(trim(both ' ' from_schema))||
                        '.'||dbms_assert.sql_object_name(trim(''' from_table))||  
                  ' WHERE '||dbms_assert.sql_object_name(key_field) || ' = '||key_value;



 EXECUTE IMMEDIATE query_string into return_result;

无效的 sql 对象。

从文档中我觉得表中的任何对象都是 sql 对象?
怎么了?

考虑 oracle 10g 中的以下功能

在 10g 上下文中考虑以下函数

    创建或替换功能 scott.tab_lookup (key_field CHAR,
                                       键值字符,
                                       from_schema CHAR,
                                       from_table CHAR,
                                       返回字段字符,
                                       return_type CHAR)
    返回 VARCHAR2 是
    result_a varchar2(1000);
    查询字符串 VARCHAR2(4000);

    /*版本0.5*/
    开始

    query_string := 'SELECT '||dbms_assert.qualified_sql_name(trim(from_table||'.'||return_field))|| 
                       ' FROM '||dbms_assert.schema_name(trim(from_schema))||
                            '.'||dbms_assert.sql_object_name(trim(from_table))||  
                      ' WHERE '||dbms_assert.qualified_sql_name(from_table||'.'||key_field) || ' = '||key_value;

      IF(return_type …

oracle plsql

3
推荐指数
1
解决办法
3490
查看次数

标签 统计

oracle ×1

plsql ×1