加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何在oracle数据库中获取varchar2的声明大小

发布时间:2021-01-12 16:15:19 所属栏目:站长百科 来源:网络整理
导读:试图在Oracle中获取已界说变量的巨细.我也许必要在声明varchar2的巨细时行使数字,而不是必需跟踪特另外变量或数字. 示例伪代码: declare myvar varchar(42) := 'a';begin /* I know the length is length(myvar) = 1. */ /* but how do I get 42? */ /* Wha

试图在Oracle中获取已界说变量的巨细.我也许必要在声明varchar2的巨细时行使数字,而不是必需跟踪特另外变量或数字.

示例伪代码:

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 ON
SQL> DECLARE
  2    myvar CHAR(42);
  3  BEGIN
  4    myvar:='a';
  5    dbms_output.put_line(LENGTH(myvar));
  6  END;
  7  /
42

PL/SQL procedure successfully completed.

SQL>

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读