ora-01756

SQL 脚本中的全角逗号引起【ORA-01756: 引号内的字符串没有正确结束】

不羁的心 提交于 2019-12-25 12:06:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天运行壹個小程序,功能是读取指定目录下的 SQL 脚本,并加载到内存中批量执行,之前的程序运行良好。但是今天相关开发人员更新了其中壹個 SQL 脚本,于是程序运行的时候就出错了,错误提示信息如下: 批处理中出现错误: ORA-01756: 引号内的字符串没有正确结束 。 用 Notepad++ 打开看了下 SQL 脚本,没有发现明显的语法错误,再仔细找了找包含单引号和双引号的语句,也没有看到语句未正确结束的地方。于是有点困惑,开始启动 Eclipse 的 Debug 模式仔细分析,并调低了日志级别到 DEBUG,将所有解析出来的 SQL 语句打印至控制台。 结果在日志中发现有的 SQL 语句解析之后居然是乱码,截取部分内容如下所示: 4,2,'?占淇迹罩湛贾? from TRUSTDB.TRUST_PRDT_MEM_SET t 很明显的,数字2后面的部分只有壹個开始的单引号,而没有关闭的单引号,看来极有可能是这段乱码引起的,上述内容在原始的 SQL 文件(GBK 编码)中实际是这样的: 4,2,'日间开始,日终开始之前' from TRUSTDB.TRUST_PRDT_MEM_SET t 不知道为什么经过 Java 解析之后会变成壹串乱码。找到问题的所在,修改的时候直接把“日间开始,日终开始之前

Searching data from a table using stored procedure in oracle by passing tablename as a parameter

有些话、适合烂在心里 提交于 2019-12-02 22:13:31
问题 This procedure is not working properly. create or replace procedure bank_search_sp ( p_tablename in varchar2, p_searchname in varchar2, p_bankcode out varchar2, p_bankname out varchar2, p_dist_code out number ) as v_tem varchar2(5000); begin v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||''; execute immediate v_tem into p_bankcode,p_bankname,p_dist_code using p_searchname ; commit; end bank_search_sp; the Procedure is

Searching data from a table using stored procedure in oracle by passing tablename as a parameter

大兔子大兔子 提交于 2019-12-02 09:56:53
This procedure is not working properly. create or replace procedure bank_search_sp ( p_tablename in varchar2, p_searchname in varchar2, p_bankcode out varchar2, p_bankname out varchar2, p_dist_code out number ) as v_tem varchar2(5000); begin v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||''; execute immediate v_tem into p_bankcode,p_bankname,p_dist_code using p_searchname ; commit; end bank_search_sp; the Procedure is getting created but i dont know what actually happens when it was executed ,This is the error shown ORA