ssmith001
09-23-2003, 01:45 PM
Is there an Oracle function I can use to replace one character with another? I need to replace all occurances of # in a string with blanks.
Steve
Steve
|
Click to See Complete Forum and Search --> : Function to replace text ssmith001 09-23-2003, 01:45 PM Is there an Oracle function I can use to replace one character with another? I need to replace all occurances of # in a string with blanks. Steve slimdave 09-23-2003, 01:49 PM The clue is in the question there. Have a look at the SQL Reference m,anual at http://tahiti.oracle.com for the name of a function that might be involved in REPLACE'ing text. ssmith001 09-23-2003, 02:28 PM Slimdave, Maybe if I tell you what I'm trying to do, you can get a better picture. I am attempting to build a single character string that is made up of three fields concatenated together. Field X is Char(3) Field Y is Char(25) Field Z is Char(10) Before (the letters on the 1st line are positional markers): XXXYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZ 010#E0001K2 034 After: XXXYYYYYYYYYYYYZZZ 010 E0001K2 034 for a total of 18 characters. Steve marist89 09-23-2003, 04:28 PM Not sure what you're asking, but here are some examples: SQL> select * from xyz; X Y Z --- ---------- ---------- 001 83727#828 828273 002 #2882277 282727#22 003 273727# 282#28727# SQL> select x || y || z from xyz; X||Y||Z ----------------------- 00183727#828828273 002#2882277282727#22 003273727#282#28727# 1* select replace(x || ' ' || y || ' ' || z, '#', '') from xyz SQL> / REPLACE(X||''||Y||''||Z,' ------------------------- 001 83727828 828273 002 2882277 28272722 003 273727 28228727 ssmith001 09-23-2003, 05:03 PM Here's the query... select substr(a.mcrp30,4,2)||decode(b.ibsrp8,'H',1,0)||replace(c.imaitm,'#',' ')||trim(substr(a.mcrp30,1,3)) as ITEM_CODE from f0006 a, f4102 b, f4101 c where a.mcmcu = b.ibmcu and b.ibitm = c.imitm and here's the result. Crap! I lost all the formatting, but imagine that the first line reads: 580~~100276R1~~423 (where ~ = spaces) ITEM_CODE ---------------------------------- 580 100276R1 423 580 100662 423 580 E2170R2 423 580 E2181R1 423 580 E6407R8 423 580 E6946R9 423 580 E8268R5 423 580 E9395R3 423 580 EE0142R2 423 260PGM1002C 408 260PTS1000A 408 What I need for it to look like is this (18 chars total): 580 100276R1 423 Steve rotem_fo 09-24-2003, 04:00 AM try this: select x , rpad(replace(y,'#',''),9) y, rpad(replace(z,'#',''),6) z from xyz / dbasupport.com
Copyright Internet.com Inc. All Rights Reserved. |