oracle – PL / SQL函数参数
在PL / SQL中,下面的代码将失败.它不应承界说varchar2参数的巨细.你知道为什么吗?我怎样办理它? create or replace function logMessage(msg varchar2(2000)) return number as begin null; return 1; end logMessage; / 错误信息是 您可以通过删除巨细束缚来修复它.它不必要: create or replace function logMessage (msg in varchar2) return number is begin null; return 1; end logMessage; / 我假设你的成果轻微伟大一点吗? create function语句from the documentation的完备语法是: CREATE [OR REPLACE] FUNCTION [Owner.]FunctionName [(arguments [IN|OUT|IN OUT][NOCOPY] DataType [DEFAULT expr][,...])] RETURN DataType [InvokerRightsClause] [DETERMINISTIC] {IS|AS} 假如您有乐趣,可以在the specifics阁下得到大量信息,但您也许会发明TECH on the Net更有效. 答复你的第一个题目,为什么我不知道,也找不到谜底.可是to quote APC:
简而言之,您应该在运行时知道将会有多长时刻,而且可以或许处理赏罚它.您可以思量几个选项: 假如你知道你想要动静的长度,你可以界说一个变量,其默认值是参数的substr: create or replace function logmessage ( msg in varchar2 ) return number is l_msg varchar2(2000) := substr(msg,1,2000); begin return 1; end; 可能,您可以搜查函数自己的长度: create or replace function logmessage ( msg in varchar2 ) return number is begin if length(msg) > 2000 then return 0; end if; return 1; end; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |