在Oracle中将1传递给游标时指定可变大小
Posted
技术标签:
【中文标题】在Oracle中将1传递给游标时指定可变大小【英文标题】:Specifying variable size when passing one to the cursor in Oracle 【发布时间】:2011-01-28 18:52:35 【问题描述】:如果我定义的光标接受 2 个这样的参数:
CURSOR cur_det (var1 IN varchar2,var2 IN varchar2) IS
是否可以指定它们的大小?谢谢
【问题讨论】:
你试过CURSOR cur_det (var1 IN varchar2(10),var2 IN varchar2(72)) IS...
看看会发生什么吗?
@Frustrated - 你得到 ORA-06550,PLS-00103,“在期待...时遇到了符号“(”。它不喜欢“(10)”。
@redcayuga:我试图向 OP 建议他们应该自己尝试并报告结果,然后再在这里询问。
@Frustrated:我明白你的意思,这是一个 RTM 问题。 “Try It Yourself So You Don't have to Ask”有首字母缩写词吗? - TIYSYDHTA?
【参考方案1】:
不,您不能指定varchar2(100)
或类似的东西。传递的 varchar 不受约束。
您可以使用 %Type 将参数锚定到数据库列,即my_table.a_column%Type
。但我不认为这实际上限制了参数。
【讨论】:
感谢您的确认。经过仔细检查,我的问题在其他地方,但这很有用。谢谢以上是关于在Oracle中将1传递给游标时指定可变大小的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库存储过程中输出参数为自定义游标类型时,使用call或者exec调用时,用啥来给游标赋值
PLS-00103 在 Oracle 游标中提供参数时 [重复]
oracle数据库,PLS-S-01705, 如果游标说明中有 UNION 或 ORDER_BY, 则由游标指定的表不可更新