GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE
HI GURUS, If I have a table that has a field with long data type and I want to get the first 250 characters out of it how can I do it. I tried using SUBSTR(long data type field, 1, 250) but it complained about "ORA-00932: inconsistent datatypes". I then tried TO_CHAR(SUBSTR(long data type field, 1, 250)) but still gave me the same result. Tried TO_VARCHAR2 but to no avail. Thanks, Mark -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Mark Liggayu INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
Re: GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE
Mark Liggayu wrote: > > HI GURUS, > > If I have a table that has a field with long data type and I want to get the > first 250 characters out of it how can I do it. I tried using SUBSTR(long > data type field, 1, 250) but it complained about "ORA-00932: inconsistent > datatypes". I then tried TO_CHAR(SUBSTR(long data type field, 1, 250)) but > still gave me the same result. Tried TO_VARCHAR2 but to no avail. > > Thanks, > Mark > You can't apply a function to a LONG (but perhaps the LONG-to-LOB conversions of 8i). If this is possible to you (ie Oracle version supporting it), convert to CLOB or similar. Otherwise, all I can think of is a user-written PL/SQL function (would work with Oracle 7.3 and, of course, above). In PL/SQL, VARCHAR2 can be up to 32K (or around) and you CAN select a LONG into a large enough VARCHAR2. If your LONGs are under 32K, it is easy to write a function LONGSTART which fetches the suitable LONG into a suitably long VARCHAR2, and returns the 250 first characters of this VARCHAR2. Note that I am talking about feasibility, not performance (it may not be THAT bad but I wouldn't do it on millions of rows). -- HTH, Stephane Faroult Oriole Corporation Voice: +44 (0) 7050-696-269 Fax:+44 (0) 7050-696-449 Performance Tools & Free Scripts -- http://www.oriole.com, designed by Oracle DBAs for Oracle DBAs -- -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Stephane Faroult INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
Re: GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE
Hi, In SQL*Plus "set long 250" Jack "Mark Liggayu" ndows.com> cc: (bcc: Jack van Zanen/nlzanen1/External/MEY/NL) Sent by: [EMAIL PROTECTED] Subject: GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE 04-07-2001 22:56 Please respond to ORACLE-L HI GURUS, If I have a table that has a field with long data type and I want to get the first 250 characters out of it how can I do it. I tried using SUBSTR(long data type field, 1, 250) but it complained about "ORA-00932: inconsistent datatypes". I then tried TO_CHAR(SUBSTR(long data type field, 1, 250)) but still gave me the same result. Tried TO_VARCHAR2 but to no avail. Thanks, Mark -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Mark Liggayu INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). = De informatie verzonden in dit e-mailbericht is vertrouwelijk en is uitsluitend bestemd voor de geadresseerde. Openbaarmaking, vermenigvuldiging, verspreiding en/of verstrekking van deze informatie aan derden is, behoudens voorafgaande schriftelijke toestemming van Ernst & Young, niet toegestaan. Ernst & Young staat niet in voor de juiste en volledige overbrenging van de inhoud van een verzonden e-mailbericht, noch voor tijdige ontvangst daarvan. Ernst & Young kan niet garanderen dat een verzonden e-mailbericht vrij is van virussen, noch dat e-mailberichten worden overgebracht zonder inbreuk of tussenkomst van onbevoegde derden. Indien bovenstaand e-mailbericht niet aan u is gericht, verzoeken wij u vriendelijk doch dringend het e-mailbericht te retourneren aan de verzender en het origineel en eventuele kopieën te verwijderen en te vernietigen. Ernst & Young hanteert bij de uitoefening van haar werkzaamheden algemene voorwaarden, waarin een beperking van aansprakelijkheid is opgenomen. De algemene voorwaarden worden u op verzoek kosteloos toegezonden. = The information contained in this communication is confidential and is intended solely for the use of the individual or entity to whom it is addressed. You should not copy, disclose or distribute this communication without the authority of Ernst & Young. Ernst & Young is neither liable for the proper and complete transmission of the information contained in this communication nor for any delay in its receipt. Ernst & Young does not guarantee that the integrity of this communication has been maintained nor that the communication is free of viruses, interceptions or interference. If you are not the intended recipient of this communication please return the communication to the sender and delete and destroy all copies. In carrying out its engagements, Ernst & Young applies general terms and conditions, which contain a clause that limits its liability. A copy of these terms and conditions is available on request free of charge. = -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-
RE: GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE
Stephane, You could write a plsql by defiining a variable with 32K (like fetch_log_valuevarchar2(32760)) You could fetch the long data type column value into fetch_long_value variable after opening the cursor. After that you can use substr on this variable. Baskar -Original Message- Sent: 04 July 2001 23:20 To: Multiple recipients of list ORACLE-L Mark Liggayu wrote: > > HI GURUS, > > If I have a table that has a field with long data type and I want to get the > first 250 characters out of it how can I do it. I tried using SUBSTR(long > data type field, 1, 250) but it complained about "ORA-00932: inconsistent > datatypes". I then tried TO_CHAR(SUBSTR(long data type field, 1, 250)) but > still gave me the same result. Tried TO_VARCHAR2 but to no avail. > > Thanks, > Mark > You can't apply a function to a LONG (but perhaps the LONG-to-LOB conversions of 8i). If this is possible to you (ie Oracle version supporting it), convert to CLOB or similar. Otherwise, all I can think of is a user-written PL/SQL function (would work with Oracle 7.3 and, of course, above). In PL/SQL, VARCHAR2 can be up to 32K (or around) and you CAN select a LONG into a large enough VARCHAR2. If your LONGs are under 32K, it is easy to write a function LONGSTART which fetches the suitable LONG into a suitably long VARCHAR2, and returns the 250 first characters of this VARCHAR2. Note that I am talking about feasibility, not performance (it may not be THAT bad but I wouldn't do it on millions of rows). -- HTH, Stephane Faroult Oriole Corporation Voice: +44 (0) 7050-696-269 Fax:+44 (0) 7050-696-449 Performance Tools & Free Scripts -- http://www.oriole.com, designed by Oracle DBAs for Oracle DBAs -- -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Stephane Faroult INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Ramasamy, Baskar INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
RE: GETTING FIRST 250 CHARACTERS FROM A LONG DATATYPE
Mark, You could write a plsql by defiining a variable with 32K (like fetch_log_valuevarchar2(32760)) You could fetch the long data type column value into fetch_long_value variable after opening the cursor. After that you can use substr on this variable. Baskar -Original Message- Sent: 04 July 2001 21:56 To: Multiple recipients of list ORACLE-L HI GURUS, If I have a table that has a field with long data type and I want to get the first 250 characters out of it how can I do it. I tried using SUBSTR(long data type field, 1, 250) but it complained about "ORA-00932: inconsistent datatypes". I then tried TO_CHAR(SUBSTR(long data type field, 1, 250)) but still gave me the same result. Tried TO_VARCHAR2 but to no avail. Thanks, Mark -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Mark Liggayu INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Ramasamy, Baskar INET: [EMAIL PROTECTED] Fat City Network Services-- (858) 538-5051 FAX: (858) 538-5051 San Diego, California-- Public Internet access / Mailing Lists To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).