oracle sql 调用 自定义函数时出错
时间:2011-10-01
来源:互联网
写了个简单的pl/sql function, foo(t_id) 查询 table B 返回 一个varchar2 的值
邪门的是
select id, empname, foo(id)
from table_A
where id in ('id1234xyz','idasdf6789') --id 是random.string生成的混合码
能正常出结果 (表A的ID是pk,同时是表B的fk)foo(id)就是查询表B,合并一个描述项然后return
但是应用到全表
select id, empname, foo(id)
from table_A
就不成了,出错,说是call function无结果
好像是select 语句不知道怎么处理表A的id 并且pass到function里
试过用 cast(id as varchar2(20))什么的都不管用,其实那个id本身是字符串,不应该啊……
用
select id, empname, foo(name)
from table_A
故意用错误的列去,还能有点返回,说找不到记录(函数里面有错误处理,找不到就返回说没有这个ID),不是那种call function无结果的系统错……
真是奇怪极了
拜托拜托,帮忙想想
邪门的是
select id, empname, foo(id)
from table_A
where id in ('id1234xyz','idasdf6789') --id 是random.string生成的混合码
能正常出结果 (表A的ID是pk,同时是表B的fk)foo(id)就是查询表B,合并一个描述项然后return
但是应用到全表
select id, empname, foo(id)
from table_A
就不成了,出错,说是call function无结果
好像是select 语句不知道怎么处理表A的id 并且pass到function里
试过用 cast(id as varchar2(20))什么的都不管用,其实那个id本身是字符串,不应该啊……
用
select id, empname, foo(name)
from table_A
故意用错误的列去,还能有点返回,说找不到记录(函数里面有错误处理,找不到就返回说没有这个ID),不是那种call function无结果的系统错……
真是奇怪极了
拜托拜托,帮忙想想
作者: xzhang148 发布时间: 2011-10-01
怀疑是不是由于你foo(id)内部找不到数据报错,报错导致的..
foo函数内部异常处理返回空字符串看看..
table B 表里面的数据就留几条A表里面存在的的数据看看,是不是还报错..
foo函数内部异常处理返回空字符串看看..
table B 表里面的数据就留几条A表里面存在的的数据看看,是不是还报错..
作者: xiaobluesky 发布时间: 2011-10-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28