我想知道在plsql中是否存在给出变量最大长度的函数.

例如,如果我声明

DECLARE

varia VARCHAR2(7)

BEGIN

call of a function that would return 7

END

即使varia为null,我也可以得到varchar的长度为7.

—例如

create or replace

TYPE ENREG_320_03 UNDER ENREG_320_BASE(

date_creation VARCHAR2(8),

raison_sociale_emetteur VARCHAR2(35),

adresse_emetteur_1 VARCHAR2(35),

adresse_emetteur_2 VARCHAR2(35),

adresse_emetteur_3 VARCHAR2(35),

num_siret VARCHAR2(14),

ref_remise VARCHAR2(16),

code_bic_emetteur VARCHAR2(11),

type_ident_compte_debit VARCHAR2(1),

ident_compte_debit VARCHAR2(34),

code_devise_compte_debit VARCHAR2(3),

ident_client VARCHAR2(16),

type_ident_compte_frais VARCHAR2(1),

ident_compte_frais VARCHAR2(34),

code_devise_compte_frais VARCHAR2(3),

zone_reserve VARCHAR2(16),

indice_type_debit_remise VARCHAR2(1),

indice_type_remise VARCHAR2(1),

date_execution_souhait VARCHAR2(8),

devise_transfert VARCHAR2(3),

MEMBER FUNCTION get_date_creation RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.date_creation IS NULL THEN lpad(' ', 8, ' ') ELSE rpad(SELF.date_creation, 8, ' ') END;

END get_date_creation;

MEMBER FUNCTION get_raison_sociale_emetteur RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.raison_sociale_emetteur IS NULL THEN lpad(' ', 35, ' ') ELSE rpad(SELF.raison_sociale_emetteur, 35, ' ') END;

END get_raison_sociale_emetteur;

MEMBER FUNCTION get_adresse_emetteur_1 RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.adresse_emetteur_1 IS NULL THEN lpad(' ', 35, ' ') ELSE rpad(SELF.adresse_emetteur_1, 35, ' ') END;

END get_adresse_emetteur_1;

MEMBER FUNCTION get_adresse_emetteur_2 RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.adresse_emetteur_2 IS NULL THEN lpad(' ', 35, ' ') ELSE rpad(SELF.adresse_emetteur_2, 35, ' ') END;

END get_adresse_emetteur_2;

MEMBER FUNCTION get_adresse_emetteur_3 RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.adresse_emetteur_3 IS NULL THEN lpad(' ', 35, ' ') ELSE rpad(SELF.adresse_emetteur_3, 35, ' ') END;

END get_adresse_emetteur_3;

MEMBER FUNCTION get_num_siret RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.num_siret IS NULL THEN lpad(' ', 14, ' ') ELSE rpad(SELF.num_siret, 14, ' ') END;

END get_num_siret;

MEMBER FUNCTION get_ref_remise RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.ref_remise IS NULL THEN lpad(' ', 16, ' ') ELSE rpad(SELF.ref_remise, 16, ' ') END;

END get_ref_remise;

MEMBER FUNCTION get_code_bic_emetteur RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.code_bic_emetteur IS NULL THEN lpad(' ', 11, ' ') ELSE rpad(SELF.code_bic_emetteur, 11, ' ') END;

END get_code_bic_emetteur;

MEMBER FUNCTION get_type_ident_compte_debit RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.type_ident_compte_debit IS NULL THEN lpad(' ', 1, ' ') ELSE rpad(SELF.type_ident_compte_debit, 1, ' ') END;

END get_type_ident_compte_debit;

MEMBER FUNCTION get_ident_compte_debit RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.ident_compte_debit IS NULL THEN lpad(' ', 34, ' ') ELSE rpad(SELF.ident_compte_debit, 34, ' ') END;

END get_ident_compte_debit;

MEMBER FUNCTION get_code_devise_compte_debit RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.code_devise_compte_debit IS NULL THEN lpad(' ', 3, ' ') ELSE rpad(SELF.code_devise_compte_debit, 3, ' ') END;

END get_code_devise_compte_debit;

MEMBER FUNCTION get_ident_client RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.ident_client IS NULL THEN lpad(' ', 16, ' ') ELSE rpad(SELF.ident_client, 16, ' ') END;

END get_ident_client;

MEMBER FUNCTION get_type_ident_compte_frais RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.type_ident_compte_frais IS NULL THEN lpad(' ', 1, ' ') ELSE rpad(SELF.type_ident_compte_frais, 1, ' ') END;

END get_type_ident_compte_frais;

MEMBER FUNCTION get_ident_compte_frais RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.ident_compte_frais IS NULL THEN lpad(' ', 34, ' ') ELSE rpad(SELF.ident_compte_frais, 34, ' ') END;

END get_ident_compte_frais;

MEMBER FUNCTION get_code_devise_compte_frais RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.code_devise_compte_frais IS NULL THEN lpad(' ', 3, ' ') ELSE rpad(SELF.code_devise_compte_frais, 3, ' ') END;

END get_code_devise_compte_frais;

MEMBER FUNCTION get_zone_reserve RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.zone_reserve IS NULL THEN lpad(' ', 16, ' ') ELSE rpad(SELF.zone_reserve, 16, ' ') END;

END get_zone_reserve;

MEMBER FUNCTION get_indice_type_debit_remise RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.indice_type_debit_remise IS NULL THEN lpad(' ', 1, ' ') ELSE rpad(SELF.indice_type_debit_remise, 1, ' ') END;

END get_indice_type_debit_remise;

MEMBER FUNCTION get_indice_type_remise RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.indice_type_remise IS NULL THEN lpad(' ', 1, ' ') ELSE rpad(SELF.indice_type_remise, 1, ' ') END;

END get_indice_type_remise;

MEMBER FUNCTION get_date_execution_souhait RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.date_execution_souhait IS NULL THEN lpad(' ', 8, ' ') ELSE rpad(SELF.date_execution_souhait, 8, ' ') END;

END get_date_execution_souhait;

MEMBER FUNCTION get_devise_transfert RETURN VARCHAR2 AS

BEGIN

RETURN CASE WHEN SELF.devise_transfert IS NULL THEN lpad(' ', 3, ' ') ELSE rpad(SELF.devise_transfert, 3, ' ') END;

END get_devise_transfert;

所以我想知道是否存在一个简单的函数来获得字段的大小所以我不必在getter中使用数字:如果字段的大小改变了,就没有必要更改getter,它会工作无论varchar的大小

但我明白这是不可能的

谢谢大家

oracle变量最大多少位,oracle – 是否有可能获得变量的最大可能长度相关推荐

  1. oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64

    说明:11g数据库现在新部署的数量也很多的,对于10g数据库,现在整理一下10g到11g的升级过程.10.2.0.2以上版本才能升级到11.2.0.3版本. 升级说明:10.2.0.5(64)-> ...

  2. oracle sql 匹配 一位,oracle -sql模式匹配

    下面是条件 like与regexp_like条件 下面是函数 regexp_instr regexp_replace regexp_substr select * from tis_ft_user_i ...

  3. oracle12官方下载,Oracle 12c下载64位|Oracle Database 12c下载 官方版_最火软件站

    Oracle 12C 是由Oracle官方提供的最新版本数据库,Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environ ...

  4. 用64位的plsql developer 连接虚拟机中的64位oracle数据库

    背景:为了学习oracle,我在虚拟机上安装了oracle.并在实体机上安装了oracle客户端及plsql developer. 开始之前,先回答两个问题 为什么不在本机安装oracle? 因为or ...

  5. Powerdesigner逆向工程64位Oracle数据库

    Powerdesigner老版本不支持64位Client,新版本弄不到破解码 解决方法,用Powerdesigner+32位Oracle Clent访问64位Oracle Server 遇到的坑分享下 ...

  6. 安装64位Oracle 10g超详细教程

    安装64位Oracle 10g超详细教程 1. 安装准备阶段 1.1 安装Oracle环境 经过上一篇博文的过程,已经完成了对Linux系统的安装,本例使用X-Manager来实现与Linux系统的连 ...

  7. plsql连接不上64位oracle,plsql develope连接64位Oracle 11g出错解决方案(图)

    问题描述 Win7(64)+Oracle(64),安装完毕后,使用PLSQL Developer出现以下问题: 1 PLSQL Developer登录框中的Database下拉框始终空白,也即无法读取 ...

  8. PLSQL developer 连接不上64位Oracle 的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> Windows 64位下装Oracle 11g 64位,PLSQL Developer使用出现以下问题: 1.Database ...

  9. pl/sql链接64位oracle数据库报错Could not initialize oci.dll

    原来是32位的oracle,所以没有报错. 后来是64位oracle,但是是直接链接oracle客户端,所以也没有报错. 现在是64位oracle服务器上直接安装plsql,报错. 报错原因:plsq ...

最新文章

  1. 让你的 conda “回滚”到以前版本的环境
  2. Numpy的广播机制详解(broadcasting)
  3. MySQL在ROW模式下通过binlog提取SQL语句
  4. 时间序列预测——线性回归(上下界、异常检测),异常检测时候历史数据的输入选择是关键,使用过去历史值增加模型健壮性...
  5. 2021-05-10 如何修改Docker的默认镜像存储位置
  6. notepad++中的unexpected indent
  7. 工程师必知的代码重构指南
  8. 适当的Java堆大小的5个技巧
  9. 线程的控制(创建、等待、终止)、分离线程
  10. 【kafka】kafka broker 限流 topic 限流 配额
  11. L2-012. 关于堆的判断(STL中heap)
  12. JAVA_pagecontext页面跳转
  13. 《EDIUS 6.5快刀手高效剪辑技法》——1.5 常用视频术语简介
  14. 如何快速理解模糊PID算法 ---(一)
  15. laravel框架跨域请求
  16. 逻辑教育大厂必备IOS面试突击班
  17. Prometheus 实战于源码分析之webHandler
  18. var,let const,const 变量提升
  19. 自定义身份证输入键盘
  20. 机器学习常用的六种分类方法,Python代码详细都在这里!

热门文章

  1. 在各路由器进行OSPF的基本配置
  2. 苹果将放弃PowerPC支持 全面Intel化
  3. 数据产品通用复合指标查询计算的实践
  4. 科大讯飞cordova语音插件填坑及api介绍
  5. 使用Docker for Windows初体验
  6. 30分钟LINQ教程【转】
  7. BZOJ 4810 莫队+bitset
  8. OS存储器管理(一)
  9. JavaScript模块化-require.js
  10. 微信订阅号开发笔记(三)