WEB开发网
开发学院数据库Oracle Oracle多行记录字符串综合操作几种方法 阅读

Oracle多行记录字符串综合操作几种方法

 2007-06-21 12:33:06 来源:WEB开发网   
核心提示: 3.灵活表函数法 灵活性★★★ 性能★★★ 难度 ★★★该方法是在方法2的基础上,使用动态SQL,Oracle多行记录字符串综合操作几种方法(3),将表名和字段名称传入,从而达到灵活的目的,不过,解决问题始终是第一原则,create or replace function str_list

3.灵活表函数法 灵活性★★★ 性能★★★ 难度 ★★★

该方法是在方法2的基础上,使用动态SQL,将表名和字段名称传入,从而达到灵活的目的。

create or replace function str_list2
( key_name in varchar2,
key in varchar2,
coname in varchar2,
tname   in varchar2 )
return varchar2
as
  type rc is ref cursor;
  str  varchar2(4000);
  sep  varchar2(2);
  val  varchar2(4000);
  cur  rc;
begin
  open cur for 'select '||coname||'
          from '|| tname || '
          where ' || key_name || ' = :x '
        using key;
  loop
    fetch cur into val;
    exit when cur%notfound;
    str := str || sep || val;
    sep := ', ';
  end loop;
  close cur;
  return str;
end;
SQL> select test.country,
 2 str_list2('COUNTRY',
   test.country, 'CITY', 'TEST') emplist
 3 from test
 4  group by test.country
 5 /
COUNTRY       EMPLIST
-------------------- -----------------
中国         台北, 香港, 上海
日本         东京, 大阪

4.一条SQL语法:

灵活性★★★★ 性能★★ 难度 ★★★★

一条SQL的法则是某位大师提出的,大家曾经在某个时期都乐此不彼的寻求各种的问题一条SQL法,但是大师的意思似乎被曲解,很多性能差,可读性差,灵活差的SQL都是这个原则产物,所谓画虎不成反成犬类。不过,解决问题始终是第一原则,这里还是给出一个比较有代表性的一条SQL方法。

上一页  1 2 3 4 5  下一页

Tags:Oracle 多行 记录

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接