gpt4 book ai didi

sql - Oracle中如何去掉多个空格

转载 作者:行者123 更新时间:2023-12-01 08:40:24 33 4
gpt4 key购买 nike

我有一个 Oracle 表,其中包含 'Shiv-----Shukla' 之类的数据(将 '-' 视为空格)。
现在我需要编写一个只留下一个空格并删除所有其他空格的程序。

这是我制作的程序,但它没有给我预期的结果。

 DECLARE
MAX_LIMIT VARCHAR2(50):=NULL;
REQ VARCHAR2(20):=NULL;
CURSOR C1 IS
SELECT *
FROM ASSET_Y;
BEGIN
FOR REC IN C1
LOOP
MAX_LIMIT:=LENGTH(REC.NAME)-LENGTH(REPLACE(REC.NAME,'-'));
FOR I IN 1..MAX_LIMIT
LOOP
UPDATE ASSET_Y
SET NAME=REPLACE(REC.NAME,'--','-')
WHERE REC.SNO=ASSET_Y.SNO;
COMMIT;
SELECT ASSET_Y.NAME INTO REQ FROM ASSET_Y WHERE ASSET_Y.SNO=REC.SNO;
DBMS_OUTPUT.PUT_LINE(REQ);
END LOOP;
END LOOP;
COMMIT;
END;
/

我的 table 是

SQL> select * from asset_y;

SNO NAME FL
---------- -------------------- --
1 Shiv------Shukla y
2 Jinesh y

运行程序后,我得到以下输出。

Shiv---Shukla
Shiv---Shukla
Shiv---Shukla
Shiv---Shukla
Shiv---Shukla
Shiv---Shukla

PL/SQL procedure successfully completed.

最佳答案

由于 regexp_replace 在 Oracle 9i 中不可用,也许您可​​以使用 owa_pattern 例程进行简单的正则表达式替换:

  owa_pattern.change(fStr, '\s+', ' ', 'g');

有关 owa_pattern 包的更多信息可以找到 here

请记住,“\s”也将匹配制表符和换行符。

关于sql - Oracle中如何去掉多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913974/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com