I am working with SQL developer with Oracle 11g. I have a query that looks something along the lines of this;
SELECT [column], [column], [column],...... rs.n
This doesn't address the ORA-00904, which I suspect is a typo, but can't really tell without seeing the real code. But if you need to strip out several characters, you can do a nested replace:
with return_sku as (
select 'This is '||chr(9)|| ' a split'||chr(10)||chr(13)||'line' as notes
from dual
)
select replace(replace(replace(replace(rs.notes, chr(10)), chr(13)), chr(9)), ' ')
from return_sku rs;
REPLACE(REPLACE(
----------------
Thisisasplitline
... but a regexp_replace might be more manageable, if possibly a little more costly:
with return_sku as (
select 'This is '||chr(9)|| ' a split'||chr(10)||chr(13)||'line' as notes
from dual
)
select regexp_replace(rs.notes, '[ '||chr(10)||chr(13)||chr(9)||']')
from return_sku rs;
REGEXP_REPLACE(R
----------------
Thisisasplitline
I've included both line feed (chr(10)) and carriage return (chr(13)) in both; might be overkill. But if you do want to remove any whitespace, this gets even simpler:
select regexp_replace(rs.notes, '\s') ...
or the Posix version:
select regexp_replace(rs.notes, '[[:space:]]') ...
As @randcd pointed out, if the third argument to replace or regexp_replace is null (or an empty string, which is the same as null in Oracle) then you don't need to supply it.