ORA-01403: no data found的问题

idonoty 2008-11-12 08:36:35
各位大虾,小弟有个ORA-01403: no data found的问题.
在我的存储过程的当中有一条这样的sql:
SELECT ps.vc2postid as postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'
这个语句运行的时候返回的值是空的
但是我在将该语句拿出来单独在数据库中运行
SELECT ps.vc2postid as postid
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'

,上句下句的id是相等的 ,却能够查处数据,不知道和解,请大家指点一二,谢谢
...全文
3807 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanjayhsu 2009-06-08
  • 打赏
  • 举报
回复
关注中。。。
bzcnc 2009-06-08
  • 打赏
  • 举报
回复
我觉得LZ应该保证两个执行的环境是相同的,USER/PASSWORD@本地服务名都是相同的,如果相同的话,不应该出现你说的情况的
阿三 2009-06-08
  • 打赏
  • 举报
回复
这贴子也太老了吧,考古呀
yesefuhua 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 buffalodong326 的回复:]
SELECT  ps.vc2postid as postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'
在ID前面加上trim看看行不行
我也遇到过这个问题
我加上trim之后解决了。

[/Quote]
正解,我剛剛也遇到同樣的狀況,trim(id)就好了
inthirties 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 idonoty 的帖子:]
各位大虾,小弟有个ORA-01403: no data found的问题.
在我的存储过程的当中有一条这样的sql:
SELECT  ps.vc2postid as postid
              INTO p_numfpostidold
              FROM dt_bbs_post ps
            WHERE ps.vc2forumid = 'id'
这个语句运行的时候返回的值是空的
但是我在将该语句拿出来单独在数据库中运行
SELECT  ps.vc2postid as postid
              FROM dt_bbs_post ps
            WHERE ps.vc2…
[/Quote]

WHERE ps.vc2forumid = 'id' 这里的id和你在plsql dev里的一致么,感觉应该是这里没有找到数据的原因
yqlong000 2008-11-26
  • 打赏
  • 举报
回复
问题解决了吗?
buffalodong326 2008-11-26
  • 打赏
  • 举报
回复
SELECT ps.vc2postid as postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'
在ID前面加上trim看看行不行
我也遇到过这个问题
我加上trim之后解决了。
idonoty 2008-11-13
  • 打赏
  • 举报
回复
回复6楼,你的方法我已经试过了,结果一样是查不出来.
各位大虾,我把那条语句单独在PL SQL developer运行是可以查出数据的
到底是什么问题啊?
ab5669 2008-11-13
  • 打赏
  • 举报
回复
改为:
SELECT ps.vc2postid INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'
去掉 AS 选项
wiler 2008-11-13
  • 打赏
  • 举报
回复
个人觉得4楼的说法很有道理
biabiasir 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 idonoty 的帖子:]
各位大虾,小弟有个ORA-01403: no data found的问题.
在我的存储过程的当中有一条这样的sql:
SELECT  ps.vc2postid as postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'
这个语句运行的时候返回的值是空的
但是我在将该语句拿出来单独在数据库中运行
SELECT  ps.vc2postid as postid
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'

,上句下句的id是相等的 ,却能够查处数据,不知道和解…
[/Quote]改成SELECT ps.vc2postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id'试试!
wht8008 2008-11-13
  • 打赏
  • 举报
回复
p_numfpostidold

是怎么定义的?
范佩西_11 2008-11-13
  • 打赏
  • 举报
回复
SELECT ps.vc2postid as postid
INTO p_numfpostidold
FROM dt_bbs_post ps
WHERE ps.vc2forumid = 'id';
dbms_output.put_line(p_numfpostidold);---加这句来测试

请确定把INTO p_numfpostidold去掉可以查询出,另外注意'id'是否带引号了?
lwmonster 2008-11-13
  • 打赏
  • 举报
回复
你在sqlplus里面能查几条数据? 应该不止一条吧,如果不止一条,那 出no data found 是对的,因为多条记录是不能Into到一个变量里的

如果只有一条记录的话,那就是那条记录的vc2postid 字段是空的
BlueskyWide 2008-11-13
  • 打赏
  • 举报
回复
不行的话,加个异常捕获处理(exception )吧,也许是BUG。

http://hi.baidu.com/rambo739/blog/item/d5679cc2926fb1180ff4770c.html


[Quote=引用 10 楼 idonoty 的回复:]
回复6楼,你的方法我已经试过了,结果一样是查不出来.
各位大虾,我把那条语句单独在PL SQL developer运行是可以查出数据的
到底是什么问题啊?
[/Quote]
icss_zhen 2008-11-13
  • 打赏
  • 举报
回复
WHERE ps.vc2forumid = 'id'
这个id是在哪附值的???
ruihuahan 2008-11-13
  • 打赏
  • 举报
回复
存储过程贴出来看看?呵呵
cosio 2008-11-12
  • 打赏
  • 举报
回复
先把SQL语句放到TOAD或是PL SQL developer 中运行看有没有数据?如果没有去掉where条件看有没有数据?
Andy__Huang 2008-11-12
  • 打赏
  • 举报
回复
--没有找到数据

是不是取出字段的值与你定义的字段类型不相符?
或者同一个ID有对应两个值?有一个为空值?
BlueskyWide 2008-11-12
  • 打赏
  • 举报
回复
--可以这样查询一下,看是什么结果?

SELECT ps.vc2postid as postid FROM dt_bbs_post ps WHERE ps.vc2forumid = 'id' and rownum=1;
加载更多回复(5)

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧