文档解释
ORA-27459: A program of type EXECUTABLE must have character-only arguments.
Cause: A program of type EXECUTABLE was created or enabled with one or more arguments of non-character datatypes.
Action: Change the arguments to be of character-only datatypes.
ORA-27459: A program of type EXECUTABLE must have character-only arguments的意思是:类型为EXECUTABLE的程序必须使用字符参数。
官方解释
Oracle 数据库在处理外部程序或函数时,ORA-27459是一个表示语法错误的错误编码。它通常出现在EXECUTABLE类型的程序或函数(如C或C++程序)定义时,表示这些函数期待字符参数,但实际给出的参数不是字符类型。
常见案例
在Oracle数据库中,使用外部函数定义类 c_proc(char *a) 和类 c_proc_ret(char *a,char *b),类 c_proc 具有返回值,而类 c_proc_ret 设定的是一个 char数组,当用户尝试调用字符超出数组的范围,则会报此错误:ORA-27459:A program of type EXECUTABLE must have character-only arguments。
一般处理方法及步骤
1.首先,确认传递给它的参数是全部是字符类型的;
2.检查ORACLE数据库中的类型和参数是否正确;
3.检查应用程序代码中的参数传递是否正确。