此代码正在触发错误
query_string := 'SELECT '||dbms_assert.sql_object_name(trim(both ' ' from return_field))|| ' FROM '||dbms_assert.schema_name(trim(both ' ' from from_schema))|| '.'||dbms_assert.sql_object_name(trim(both ' ' from from_table))|| ' WHERE '||dbms_assert.sql_object_name(key_field) || ' = '||key_value; EXECUTE IMMEDIATE query_string into return_result;
无效的sql对象。
从文档中我觉得表中的任何对象都是sql对象<这里怎么了?
在Oracle 10G中考虑以下函数
在10G上下文中考虑以下函数
CREATE OR REPLACE FUNCTION scott.tab_lookup (key_field CHAR, key_value CHAR, from_schema CHAR, from_table CHAR, return_field CHAR, return_type CHAR) RETURN VARCHAR2 IS result_a varchar2(1000); query_string VARCHAR2(4000); /*version 0.5*/ BEGIN 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 = 'SQL') THEN result_a := query_string; ELSE EXECUTE IMMEDIATE query_string --USING key_value into result_a; END IF; RETURN (result_a); EXCEPTION WHEN NO_DATA_FOUND THEN RETURN(NULL); WHEN TOO_MANY_ROWS THEN RETURN('**ERR_DUPLICATE**'); WHEN OTHERS THEN /* ORA-44001 INVALID_SCHEMA_NAME ORA-44002 INVALID_OBJECT_NAME ORA-44003 INVALID_SQL_NAME ORA-44004 INVALID_QUALIFIED_SQL_NAME */ IF SQLCODE = -44001 THEN RETURN('*ERR_INVALID_SCHEMA*'); ELSIF SQLCODE = -44002 THEN RETURN('*ERR_INVALID_OBJECT*'); ELSIF SQLCODE = -44003 THEN RETURN('*ERR_INVALID_SQL_NAME*'); ELSIF SQLCODE = -44004 THEN RETURN('*ERR_INVALID_QALIFIED_SQLNAME*'); end if; return ('*ERR_'||sqlcode); END; /
我得到了一个错误的无效对象
--to get the Genrated SQL as Value Select scott.tab_lookup('ID',1,'TEST','TEST_TABLE','TEST_DESC','SQL') from dual; -- -or- -- to get the value returned from database field Select scott.tab_lookup('ID',1,'TEST','TEST_TABLE','TEST_DESC','') from dual;
我的桌子就像
TEST_TABLE ==================== ID , TEST_DESC ==================== '11' , 'TEST 1' '12' , 'TEST 5000' '13' , 'TEST INPUT VALUE' '14' , 'JUNK VALUE' '50' , 'TEST VALUE 50'
此表位于“测试”模式中,我与SCOTT有联系,SCOTT有“测试时授予选择权”。测试表到scott's
我还是会出错
ERR_INVALID_OBJECT
query_string := 'SELECT '||dbms_assert.qualified_sql_name(trim(from_schema||'.'||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_schema||'.'||from_table||'.'||key_field) || ' = '||key_value;
EXECUTE IMMEDIATE query_string into return_result;
从文档...
只想确认Oracle SQL中需要转义哪些字符才能避免SQL注入?到目前为止,我只发现这篇文章似乎回答了我的问题:https://ss64.com/ora/syntax-escape.html.然而,正如我所听说的,amphora“@”字符也需要转义,因此,我认为上面的文章中有不完整的需要转义的字符列表。如果有人能告诉我Oracle SQL中需要转义的字符的完整列表,我将不胜感激。
主要内容:1.概述,2. Reflector,3. ReflectorFactory,4. Invoker,5. ObjectFactory,6. Property 工具类,7. MetaClass,8.ParamNameResolver1.概述 Java 中的反射虽然功能强大,但对大多数开发人员来说,写出高质量的反射代码还是 有一定难度的。MyBatis 中专门提供了反射模块,该模块对 Java 原生的反射进行了良好的封装,提了更加简洁易用的 API,方便上层使调用,并且对反射操作进行了一系列
本文向大家介绍racket 块注释,包括了racket 块注释的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 什么时候在方法开始时使用块注释,什么时候使用Javadoc风格的注释? 在Java样式指南的“注释”部分中,我发现了这一点: Java程序可以有两种注释:实现注释和文档注释。实现注释是在C ++中发现的,由,和// 分隔。文档注释(称为“文档注释”)仅适用于Java,并以分隔。可以使用javadoc工具将Doc注释提取到HTML文件中。 实现注释用于注释掉代码或有关特定实现的注释。Do
问题内容: 我在与dropwizard的合作中是相当新的。目前,我正在尝试实施HK2依赖项注入。在资源内部可以很好地工作,但是在资源外部不能工作。这是我在做什么: 我创建要注入的类的实例并绑定它们。 在我的资源中,注入工作: 所有这些变量都填充有正确类的实例。 问题是:ContentModuleManager还应该通过注入来获取其中一些类: 但是这些都是空的。有人可以解释为什么这个问题会发生,我该
我是Guice的新手,所以我试图理解AssistedInject。我有一个非常简单的项目: 我要注入的类: 带辅助注射的类别: 工厂 主类: 但它仍然不起作用,我不明白,我错在哪里?