oracle dbms_utility,dbms_utility的两个有用方法

我们在编写PL/SQL代码的时候,经常遇到一些常用代码功能,比如进行字符串转化、获取当前CPU时间等等。这些代码如果自己编写,不但消耗时间而且效率和正确性也得不到保证。

作为一门成熟的开发语言,PL/SQL也提供了很多工具包和方法库。其中dbms_utility就是其中比较重要的一个。如同名称所示,其中包括了很多常用的工具方法,熟悉这些方法会大大帮助我们进行Oracle开发。这次我们简单介绍一下table_to_comma和comma_to_table两个对照方法。

方法功能签名介绍

我们经常要对字符串进行变化操作,比如把一个用逗号“,”分割的字符串拆分为数组。或者把字符数组组合为用逗号“,”分割的字符串。dbms_utility包提供的这两个方法就可以方便的实现该类型功能。

首先介绍一下两个方法的签名。

//实现将数组转化为字符串

PROCEDURE table_to_comma( tabINlname_array,

tablen OUT BINARY_INTEGER,

list OUT VARCHAR2);

//实现将字符串转化为数组

PROCEDURE comma_to_table( listINVARCHAR2,

tablen OUT BINARY_INTEGER,

tabOUT lname_array);

此处,使用了一个类型为lname_array的自定义类型,需要额外注意下。该类型使用的全名为dbms_utility.lname_array,定义为:

type lname_array IS table of VARCHAR2(4000) index by BINARY_INTEGER;

--Lists of Long NAME should be stored here, it includes fully

--qualified attribute names.

lname_array为一个典型的字符串数组,用来保存处理的数组数据。lname_array是一个提升版本。在dbms_utility包中,还能够看到版本类型uncl_array,作为兼容版本。

代码示例

两个包方法是用的方法很简单,通过一个代码片段我们可以了解。

set serveroutput on size 10000;

declare

t_vararray dbms_utility.lname_array;

vc_stringlist varchar2(4000);

n_idx binary_integer;

begin

--comma to table

vc_stringlist := 'dkf,dddl,fewe,klkj';

dbms_utility.comma_to_table(vc_stringlist,

n_idx,

t_vararray);

dbms_output.put_line('Total Num : '||to_char(n_idx));

for i in 1..n_idx loop

dbms_output.put_line(t_vararray(i));

t_vararray(i) := '['||t_vararray(i)||']';

end loop;

--table to comma

dbms_utility.table_to_comma(t_vararray,

n_idx,

vc_stringlist);

dbms_output.put_line('');

dbms_output.put_line(''||vc_stringlist);

end;

/

上述代码就实现了将字符串每个逗号字符用方括号进行封装的需要。运行结果为:

Total Num : 4

dkf

dddl

fewe

klkj

[dkf],[dddl],[fewe],[klkj]

PL/SQL procedure successfully completed

Executed in 0 seconds

了解一门语言是一个长期的过程,除了语句语法和语句特点,还要尽可能了解语言默认提供的一些方法包。利用好这些方法,可以大幅度提高我们的开发效率和质量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值