oracle 10g 常见问题
来源:互联网 发布:淘宝设置图盾 编辑:程序博客网 时间:2024/05/17 01:27
在oracle 过程中:
语句:
SELECT nvl(FieldLongName,'') into TermFieldName FROM PUB_ReportDetail
WHERE ReportName=ReportName and IsTermField is not null and IsTermField=1;
出现问题:ORA-01422: 实际返回的行数超出请求的行数
原因:select XXX into XXX?
这样的用法每次必须只能返回一条记录,否则报too_many_rows错误
如果没有找到记录就报no_data_found错误
解决办法一: 采用游标
-----------------------------------------------------------------------------------------
游标:type emp2_fieldlongname is ref cursor;---------------------
----自定义游标
cur_fieldlongname emp2_fieldlongname; ---------------------
open cur_fieldlongname for SELECT nvl(FieldLongName,'') FROM PUB_ReportDetail
WHERE ReportName=ReportName and IsTermField is not null and IsTermField=1;
fetch cur_fieldlongname into TermFieldName;
close cur_fieldlongname;
-----------------------------------------------------------------------------------------
解决办法二:加 rownum=1 限制
列:SELECT nvl(FieldLongName,'') into TermFieldName FROM PUB_ReportDetail
WHERE ReportName=ReportName and IsTermField is not null and IsTermField=1 and rownum=1;
-----------------------------------------------------------------------------------------
解决办法三:捕获too_many_rows的错误,然后进行处理
问题:ORA-00904:标识符无效
语句:select scm_s_bill.billdate,pub_c_function from scm_s_bill a,pub_c_function
原因:scm_s_bill.字段 没有与表的别名对应
解决办法: 字段中的表名称要跟表别名一一对应
问题:ORA-20000:buffer overflow,limit of 10000 bytes
原因:在过程中,dbms_output,用的次数过多。
解决办法:用了dbms_output,输出多了会抱错的,屏蔽掉就可以。
问题:ORA-00947:没有足够的值。
语句:INSERT INTO name20070414020721 ( DisplayPlag ,SCM_S_BILLBILLDATE, SCM_S_BILLBILLCODE, PUB_C_ProductCODE, PUB_C_UNITNAME, SCM_S_BILLDQTY, SCM_S_BILLDPRICE, hpje )select 0, O.BILLDATE,O.BILLCODE,I.CODE,N.NAME,P.QTY,P.PRICE FROM PUB_C_AREA B, PUB_C_CTTYPE C, PUB_C_Customer D, PUB_C_DEPARTMENT E, PUB_C_GDTYPE F, PUB_C_PriceLevel H, PUB_C_Product I, PUB_C_ProductKIND J, PUB_C_REP L, PUB_C_SHIPVIA M, PUB_C_UNIT N, SCM_S_BILL O, SCM_S_BILLD P,PUB_USER W,PUB_USER A WHERE O.repid = L.repid and O.depid = E.id and O.termid = H.pricelevelid and O.shipviaid = M.shipviaid and O.customerid = D.customerid and D.cttypeid = C.cttypeid and D.areaid = B.areaid and P.productid = I.productid and I.gdtypeid = F.gdtypeid and I.kind = J.productkindid and I.unit = N.id and O.billid = P.billid and O.canceled = 0 AND O.wdate = O.adate and O.wuserno=w.userid and O.auserno=a.userid and ((O.BILLDATE >= '05-10月-02' and O.BILLDATE <= '19-10月-02'))AND(I.NAME)='' Order by B.NAME,C.NAME
原因:字段数量没有一致。
解决办法:字段数量一样。
ORA-01821:日期格式无法识别:
语句:strRand:=dbms_random.value(0,to_number(to_char(sysdate,'mm')) * 100000+to_number(to_char(sysdate,'ss')) * 1000 +to_number(to_char(sysdate,'md')) );
解决办法;暂时屏蔽调,有空在来解决。
问题:ORA-00902:无效数据类型
原因:类型不一致引起
解决办法:匹配类型
问题:ORA-00932:数据类型不一致,应为date,但却获得NUMBER
原因:类型不一致引起
解决办法:匹配类型
问题:ORA-01722:无效数字
语句:select nvl(TableName,' '),nvl(vsize(FieldName),' ') into strDbTableName,strColumn FROM PUB_FieldInfo Where FieldID=intFieldID;
原因:vsize()函数用法有错误
解决办法:修改语句为:select nvl(TableName,' '),vsize(nvl(FieldName,' ')) into strDbTableName,strColumn FROM PUB_FieldInfo Where FieldID=intFieldID;
问题:ORA-00972: 标识符过长
原因:
解决办法:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zengwenyong1985/archive/2007/04/15/1565398.aspx
- oracle 10g 常见问题
- oracle 10g 常见问题
- oracle 10g常见问题精选
- Oracle 10g常见问题精选
- Oracle 10g常见问题精选
- Oracle 10g 常见问题处理
- RedHat Linux AS5安装Oracle 10g 及常见问题
- RedHat Linux AS5安装Oracle 10g 及常见问题
- 【转】RedHat Linux AS5安装Oracle 10g 及常见问题
- PL\SQL连接Oracle 10g数据库 常见问题
- linux安装Oracle 11g常见问题
- linux安装Oracle 11g常见问题
- oracle 11g 安装和卸载的常见问题
- Oracle 11g Express Edition 安装及常见问题
- oracle 10G odbc
- oracle 10g install
- Oracle 10g
- oracle 10g 体系结构
- java发邮件
- 那些已经泛黄的旧照片。。
- 多媒体音量调节的方法
- 每天读一遍,不久你就会变!
- Linux 命令 top 学习总结
- oracle 10g 常见问题
- Flex 图片自动播放(亦可手动控制)
- DataGridView导出到Excel的三个方法
- Java内存泄露问题
- WGIM 2011 : The First International Workshop on Web-based Geographic Information Management
- div层的定位以及消息提示的淡出效果
- 关系运算符和表达式
- 《格林童话全集》的最后一个通话,坑爹啊
- android之服务