详解如何在Oracle中连接输出结果
一个偶然的机会,看到ASK TOM上的一个问题(http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:229614022562),是关于查询结果字符串连接的。下图是对一个视图(视图代码附后,全部操作是在Oracle 10g中的HR schema中完成的)进行查询得到的常见的结果。
department enamemarketing hartsteinmarketing faypurchasing raphaelypurchasing khoo...it hunoldit ernst...
但是也可能遇到需要下面这样的结果。
department enamepurchasing raphely,khoo,baida,tobias,himuro,colmenaresit hunold,ernst,austin,pataballa,lorentzmarketing hartstein,fayCREATEORREPLACEVIEWd_employeeASSELECTd.department_name department,e.last_name enameFROMdepartments d,employees eWHEREd.department_id = e.department_idANDd.department_nameIN(‘IT‘,‘Marketing‘,‘Purchasing‘);
为此,Tom大师提供了两种解决方案,如下:
方法一:
使用静态的SQL从表中选出需要进行连接的所有数据。
CREATEORREPLACEFUNCTIONCONCAT(P_DEPINVARCHAR2)RETURNVARCHAR2ISL_STRVARCHAR2(200)DEFAULTNULL;L_SEPVARCHAR2(200)DEFAULTNULL;BEGINFORRCIN(SELECTENAMEFROMD_EMPLOYEEWHEREDEPARTMENT = P_DEP)LOOPL_STR := L_STR
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|