1.问题1 执行下列SQL: sql = "select count(1) as totle from vhl_model_data a where a.OBTAIN_CREATE_TIME between to_date(?,'yyyymmsshh24mi') and to_date(?,'yyyymmsshh24mi');"; Oracle报“无效数字异常”:经过两个钟头的反复的检查,发现是由于自己粗心在上述语句结尾多写了个分号“;”导致.粗心害死人啊!真是囧! 2.问题2 ORA
今天在对12万条记录的表进行左联接时,有时可以查询出数据,有时会报无效数字,反复检查,发现问题. 例如sql: SELECT * FROM USER U LEFT JOIN USER_ROLE UR ON U.ID=UR.ID 当USER表ID与USER_ROLE表ID类型不一致的话,oracle内部隐式转换有时可以查询出数据, 但有时也会报 ORA-01722:无效数字
ORA-01722 无效数字 以下几种情况,数据库会报“ORA-01722 无效数字”错误: ① 对于两个类型不一致,一个“数字类型”,一个“非数字类型”进行赋值,或者比较操作: ② to_number()函数,括号中的输入的内容为非数字类型,比如‘a’.‘-1-1’. 针对这个函数,可以判断一个输入值是否是数字 .如果是数字,返回1,如果不是,返回0.判断数据输入的合法性时使用. create or replace function "isnumeric"(p_str in varc
方法一: 比如要查看解释计划的SQL是:select * from hy_emp 那么在输入窗口输入: EXPLAIN PLAN FOR select * from hy_emp 之后执行,输出窗口会出现 Explained. 字样,如下图: 之后执行select * from table(dbms_xplan.display); 如下: 总结步骤如下: 执行: EXPLAIN PLAN FOR SELECT * from * where.... 再执行: select * from table