oracle 导入外部 C 开发的 DLL

lookfeng 2006-08-07 10:06:00
以下语句能编译通过
CREATE OR REPLACE FUNCTION GetPY(chineseStr varchar2, separator in varchar2) return varchar2
AS
LANGUAGE C NAME "GetInitialPY"
LIBRARY PYLIB;

问题是:
1、DLL中separator是字符串,允许null或者"",
但在oracle里,""当作null处理,并且在使用GetPY函数时
不能:
GetPY("中国", null),报ORA-01405提取的值为null。
GetPY("中国", ""),报ORA-01405提取的值为null。

该怎样定义函数GetPY,让其允许参数为null.


2、我在 DLL 里有一个函数参数是 char型 (一个字符)
在Oracle中用什么代替??
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lookfeng 2006-08-11
  • 打赏
  • 举报
回复
在顶一下,再没人回答就只好接贴了
lookfeng 2006-08-11
  • 打赏
  • 举报
回复
自己已经解决。
用parameters子句。
那就当散分吧。
chanet 2006-08-11
  • 打赏
  • 举报
回复
1.不会是在输入的时候出错吧.
你试一下,在getpy第一句加上,return, 看看是否是输入出错,还是在函数体有错.

2.也可以用char型
lookfeng 2006-08-08
  • 打赏
  • 举报
回复
传入双引号是我笔误

GetPY('中国', null)报ORA-01405提取的值为null。
老吴子 2006-08-08
  • 打赏
  • 举报
回复
1、在函数中是否调用了数据库内容?
2、在SQL中具体的使用代码是什么?
老吴子 2006-08-07
  • 打赏
  • 举报
回复
char类型在Oracle中可以用Varchar2的,另外在Oracle中调用应该是单引号,为什么传入双引号,是列名吗?ORA-01405一般发生在将NULL值送入变量时,比如select into 或 fetch into,请检查。
lookfeng 2006-08-07
  • 打赏
  • 举报
回复
怎么没人回答

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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