示例伪代码:
declare myvar varchar(42) := 'a';begin /* I kNow the length is length(myvar) = 1. */ /* but how do I get 42? */ /* What is the max defined size of this variable */ declared_size_of(myvar); end
我需要这个的原因是lpad字符串的长度为声明的大小,因此它不会产生异常.
解决方法 正如@Justin在他的评论中所说,如果使用CHAR数据类型,则不必显式空白填充字符串. Oracle会将值空白填充到它的最大大小.从documentation,
If the data type of the receiver is CHAR,PL/sql blank-pads the value
to the maximum size. information about trailing blanks in the original
value is lost.
例如,
sql> SET serveroutput ONsql> DECLARE 2 myvar CHAR(42); 3 BEGIN 4 myvar:='a'; 5 dbms_output.put_line(LENGTH(myvar)); 6 END; 7 /42PL/sql procedure successfully completed.sql>总结
以上是内存溢出为你收集整理的如何在oracle数据库中获取varchar2的声明大小全部内容,希望文章能够帮你解决如何在oracle数据库中获取varchar2的声明大小所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)