日期:2014-05-16  浏览次数:20878 次

是否有类似decode的过程
oracle的存储过程能否有类似decode那样的不定数量和类型的参数的过程?
------最佳解决方案--------------------
引用:
没人知道oracle内置函数的原理么?decode可以输入任意数量的参数,min,max等都可以输入任何类型的参数,难道自己写的过程里就做不到这些么


任何类型很简单,写到包里,包内重载。
任意个数?你是没试过吧,你输入十万个参数试试。
一定范围内任意个数很简单,
create or replace procedure pro_i_am_max(p1 in varchar2,p2 in varchar2 default '',p3 in varchar2 default ''..
p256 in varchar2 default '') as...


但是,里面就不好写了,人家内部函数可以直接用高级语言调地址,你一个用PL/SQL写的函数还得用参数名,累也累死了,用context还稍稍能看,也麻烦。

引用:
另外再问下oracle有析构函数么?


没有。好多高级语言都没有,一个PL/SQL为什么要有。
对象有成员函数可以用来写析构,过程结束后可以调用审计功能,写个类似触发器的东西。
------其他解决方案--------------------
不可以吧, 你传递的参数还是变化的吗?这样就是不同的存储过程了吧
------其他解决方案--------------------
nvl2,可以试一下啊
------其他解决方案--------------------
不定数量可以用字符串拼接,不定类型,估计麻烦。
------其他解决方案--------------------
没人知道oracle内置函数的原理么?decode可以输入任意数量的参数,min,max等都可以输入任何类型的参数,难道自己写的过程里就做不到这些么,另外再问下oracle有析构函数么?
------其他解决方案--------------------
或者类似析构的效果,在过程、对象等结束时会自动调用
------其他解决方案--------------------
偌大的CSDN就没人了么。。。。哎。。。