我有一个VARCHAR2
我想要Select
,但它太长了。所以,我想Split
将它变成这样的倍数行。
SELECT 'Veuillez adresser toute la correspondance à : Aktiva2 Service Comptabilité : 30 B rue de la Petite Hollande 59700 Marcq-en-Baroeul Tel : 03 20 20 34 83@RET@IMPORTANT: pour faciliter nos échanges comptables, lors de votre paiement, par chèque et en particulier par virement, merci de rappeler votre n° de client et n° de facture acquittée.@RET@@RET@Paiement comptant sans escompte même en cas de paiement anticipé. Au-delà de 10 jours, une pénalité de 3 fois le taux d''intérêt légal (Loi 2008-776 du 04 août 2008) sera appliquée, calculée au prorata temporis sur la valeur de facture. @RET@@RET@Conforment à la loi du 29 février 2012 le montant de l''indemnité forfaitaire pour frais de recouvrement est de 40 euros dans le cas où les sommes dues sont réglées après la date de règlement figurant sur la facture.'
FROM dual
现在我想将 @RET @ 替换为跳转到“新行”的内容。结果必须是这样的:
Veuillez adresser toute la correspondance à : Aktiva2 Service Comptabilité : 30 B rue de la Petite Hollande 59700 Marcq-en-Baroeul Tel : 03 20 20 34 83
IMPORTANT: pour faciliter nos échanges comptables, lors de votre paiement, par chèque et en particulier par virement, merci de rappeler votre n° de client et n° de facture acquittée.
Paiement comptant sans escompte même en cas de paiement anticipé. Au-delà de 10 jours, une pénalité de 3 fois le taux d''intérêt légal (Loi 2008-776 du 04 août 2008) sera appliquée, calculée au prorata temporis sur la valeur de facture.
<p>Conforment à la loi du 29 février 2012 le montant de l''indemnité forfaitaire pour frais de recouvrement est de 40 euros dans le cas où les sommes dues sont réglées après la date de règlement figurant sur la facture.
答案 0 :(得分:2)
你可以尝试这样的事情
declare text varchar2(1000);
begin
SELECT 'Veuillez adresser toute la correspondance à : Aktiva2 Service Comptabilité : 30 B rue de la Petite Hollande 59700 Marcq-en-Baroeul Tel : 03 20 20 34 83@RET@IMPORTANT: pour faciliter nos échanges comptables, lors de votre paiement, par chèque et en particulier par virement, merci de rappeler votre n° de client et n° de facture acquittée.@RET@@RET@Paiement comptant sans escompte même en cas de paiement anticipé. Au-delà de 10 jours, une pénalité de 3 fois le taux d''intérêt légal (Loi 2008-776 du 04 août 2008) sera appliquée, calculée au prorata temporis sur la valeur de facture. @RET@@RET@Conforment à la loi du 29 février 2012 le montant de l''indemnité forfaitaire pour frais de recouvrement est de 40 euros dans le cas où les sommes dues sont réglées après la date de règlement figurant sur la facture.'
into text from dual;
select REPLACE(text,'@RET@',chr(10)) into text from dual;
insert into testtable (col_text) values(text);
end;
/
此选择将放置空格
select REPLACE(text,'@RET@',chr(10)) into text from dual;
答案 1 :(得分:1)
CHR(10)是一个新行
所以REPLACE(text,'@RET@',chr(10))
欢呼声
答案 2 :(得分:1)
您可以使用SQL函数REPLACE
:
replace(your_column, '@RET@', chr(13) || chr(10))
13和10是CR和LF的ASCII码。
答案 3 :(得分:1)
您可以使用 REPLACE 。这取决于您的操作系统是仅使用CHR(10)还是CHR(10)和CHR(13)。
CHR(10) - 换行
CHR(13) - 回程。
对于Windows:
chr(10) || chr(13)
对于大多数其他操作系统:
chr(10)
例如,在我的Windows机器中:
SQL> set linesize 100
SQL> WITH DATA AS(
2 SELECT 'Veuillez adresser toute la correspondance à : Aktiva2 Service Comptabilité : 30 B rue de la Petite Hollande 59700 Marcq-en-Baroeul Tel : 03 20 20 34 83@RET@IMPORTANT: pour faciliter nos échanges comptables,
lors de votre paiement, par chèque et en particulier par virement, merci de rappeler votre n° de client et n° de facture acquittée.@RET@@RET@Paiement comptant sans escompte même en cas de paiement anticipé. Au-delà de 1
0 jours, une pénalité de 3 fois le taux d''intérêt légal (Loi 2008-776 du 04 août 2008) sera appliquée, calculée au prorata temporis sur la valeur de facture. @RET@@RET@Conforment à la loi du 29 février 2012 le montant
de l''indemnité forfaitaire pour frais de recouvrement est de 40 euros dans le cas où les sommes dues sont réglées après la date de règlement figurant sur la facture.' str
3 FROM dual
4 )
5 SELECT REPLACE(str, '@RET@', chr(10)) text FROM DATA;
TEXT
----------------------------------------------------------------------------------------------------
Veuillez adresser toute la correspondance à : Aktiva2 Service Comptabilité : 30 B rue de la Petite
Hollande 59700 Marcq-en-Baroeul Tel : 03 20 20 34 83
IMPORTANT: pour faciliter nos échanges comptables, lors de votre paiement, par chèque et en particul
ier par virement, merci de rappeler votre n° de client et n° de facture acquittée.
Paiement comptant sans escompte même en cas de paiement anticipé. Au-delà de 10 jours, une pénalité
de 3 fois le taux d'intérêt légal (Loi 2008-776 du 04 août 2008) sera appliquée, calculée au prorata
temporis sur la valeur de facture.
Conforment à la loi du 29 février 2012 le montant de l'indemnité forfaitaire pour frais de recouvrem
ent est de 40 euros dans le cas où les sommes dues sont réglées après la date de règlement figurant
sur la facture.
SQL>