Replaces all occurrences of a substring with another substring.
If any argument is NULL, the function returns NULL.
Parameter |
Description |
---|---|
original-string |
The string to be searched. This string can be any length. |
search-string |
The string to be searched for and replaced with replace-string. This string is limited to 255 bytes. If search-string is an empty string, the original string is returned unchanged. |
replace-string |
The replacement string, which replaces search-string. This can be any length. If replace-string is an empty string, all occurrences of search-string are deleted. |
LONG VARCHAR
LONG NVARCHAR
The following statement returns the value “xx.def.xx.ghi:”
SELECT REPLACE( 'abc.def.abc.ghi', 'abc', 'xx' ) FROM iq_dummy
The following statement generates a result set containing ALTER PROCEDURE statements which, when executed, repair stored procedures that reference a table that has been renamed. (To be useful, the table name must be unique.)
SELECT REPLACE( replace(proc_defn,'OldTableName','NewTableName'), 'create procedure', 'alter procedure') FROM SYS.SYSPROCEDURE WHERE proc_defn LIKE '%OldTableName%'
Use a separator other than the comma for the LIST function:
SELECT REPLACE( list( table_id ), ',', '--') FROM SYS.ISYSTAB WHERE table_id <= 5
The result data type of a REPLACE function is a LONG VARCHAR. If you use REPLACE in a SELECT INTO statement, you must have an Unstructured Data Analytics Option license, or use CAST and set REPLACE to the correct data type and size.
There are two ways to work around this issue:
DECLARE local temporary table #mytable (name_column char(10)) on commit preserve rows; INSERT INTO #mytable SELECT REPLACE(name,'0','1') FROM dummy_table01;
SELECT CAST(replace(name, '0', '1') AS Char(10)) into #mytable from dummy_table01;
CREATE TABLE aa(a CHAR(5)); INSERT INTO aa VALUES(‘CCCCC’); COMMIT; SELECT a, CAST(REPLACE(a,’C’,’ZZ’) AS CHAR(5)) FROM aa;