Oracle随录
根据表名查询其相关的存储过程:select * from user_source s WHERE s.text LIKE ‘%tablename%‘;
查某个字段包含在哪些表里:select TABLE_NAME from SYS.USER_CONS_COLUMNS where COLUMN_NAME =‘EAC076‘;
1.ORA-01789:
查询块具有不正确的结果列数。
sql语句存在union,要保证两个语句查询的字段一致,大小写顺序也要保持一致才行。
2.ORA-00979
不是GROUP BY 表达式。
select列表项中出现的列必须全部出现在group by后面(聚合函数除外),大小写顺序最好一致。
3.union all 和 order by 连用的问题,如果查询的列是固定的,可以使用order by 1(按照查询出的第一个字段排序,默认升序asc)。另外如果写为order by 5 而只有4列,则报错。
4.decode函数用法一:比较大小(如果相等)
select decode(sign(100-90),-1,100,90) from dual; --比较 小
select decode(sign(100-90),1,100,90) from dual; --比较 大
5.ORA-00911
无效字符
字段类型没转换,一个number、一个varchar,转换一下就ok了。
6.ORA-00920
sql里的where查询条件有错误。
7.ORA-00905:缺失关键字
一般时是少表导致select查询内容或则和where子查询有错
8.四舍五入保留2,3,4位小数
select round(123.456, 2) from dual; select round(123.456, 3) from dual; select round(123.456, 4) from dual;
9.金额转大写
Select Money2Chinese(0932402934024.213) From dual;
10.程序报无效的列索引(oracle)
调用存储过程的问号个数和提供的参数数量不一致,或者问号写成中文模式