The output in a column is getting truncated when i use CLOB instead of varchar2. Can someone tell me why?
Code:
CREATE OR REPLACE FUNCTION get_accounts (p_LOGIN in Siebel.s_Contact.LOGIN%TYPE)
RETURN VARCHAR2
IS
l_text VARCHAR2(32767) := NULL;
BEGIN
FOR cur_rec IN (SELECT Account.OU_NUM FROM siebel.s_org_ext Account, siebel.s_contact Contact, siebel.s_party_per Inter
WHERE p_LOGIN = Contact.Login and Contact.row_id = Inter.person_id and Inter.party_id = Account.row_id and Account.accnt_type_cd ='Billing') LOOP
l_text := l_text || ',' || cur_rec.OU_NUM;
END LOOP;
RETURN LTRIM(l_text, ',');
END;
/
SHOW ERRORS
SET PAGESIZE 50000
SET MARKUP HTML ON SPOOL ON
SET LINESIZE 95
SET ECHO off
SET FEEDBACK OFF
SET TERMOUT OFF
spool $OUTFILE1
WHENEVER SQLERROR EXIT SQL.SQLCODE
COLUMN Username FORMAT A25
COLUMN "Common Name" FORMAT A150
COLUMN Email FORMAT A50
Column "Last login timestamp" FORMAT A20
SELECT A.login "Username", B.fst_name ||' '||B.last_name "Common Name", B.email_addr "Email", A.last_login_ts "Last login timestamp",
B.x_selected_accnt_id "Last visited account", get_accounts(A.login) as "Account List"
from siebel.s_user A , siebel.s_contact B
where A.last_login_ts > SYSDATE-7 and A.par_row_id = B.PAR_ROW_ID
order by A.last_login_ts asc;
OUTPUT:
The last column values are truncated.
| Username | Common Name | Email | Last login timestamp | Last visited account | Account List |
|---|
| HCROFT | Heather Hovercroft | ccc@xxx.com | 12-JAN-2016 20:22:15 | 0666300029 | 0042101105,0204100808,0588301734,0568501321,0042100768,0468200347,0682600292,060 |
Any help is appreciated. Thanks