de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Martin Cowie
Martin Cowie
Question

Fungsi REPLACE() Oracle tidak menangani carriage-returns &; line-feeds

Kami memiliki tabel dengan kolom varchar2(100), yang terkadang berisi carriage-return &; line-feeds. Kita ingin menghapus karakter-karakter tersebut dalam kueri SQL. Kami menggunakan:

REPLACE( col_name, CHR(10) ) 

yang tidak berpengaruh, namun mengganti 'CHR(10)' untuk karakter 'huruf' yang lebih konvensional membuktikan bahwa fungsi REPLACE bekerja sebaliknya. Kami juga menemukan bahwa

REPLACE( col_name, CHR(10), '_' ) 

menemukan lokasi dari baris baru, tetapi menyisipkan garis bawah setelahnya, daripada menggantinya.

Berjalan di Oracle8i. Upgrade bukanlah sebuah pilihan.

21 2009-01-02T15:11:36+00:00 3
 a_horse_with_no_name
a_horse_with_no_name
Pertanyaan edit 24 Juni 2015 в 7:17
Pemrograman
sql
oracle
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Martin Cowie
Martin Cowie
2 Januari 2009 в 3:31
2009-01-02T15:31:57+00:00
Lebih
Sumber
Sunting
#8723691

Ahah! Cade tepat sasaran.

Sebuah artefak di TOAD mencetak \r\n sebagai dua placeholder 'blob' karakter, tetapi mencetak satu \r juga sebagai dua placeholder. Langkah pertama menuju solusi adalah dengan menggunakan ...

REPLACE( col_name, CHR(13) || CHR(10) )

.. tetapi saya memilih untuk ... yang sedikit lebih kuat.

REPLACE(REPLACE( col_name, CHR(10) ), CHR(13) )

.. yang menangkap karakter yang menyinggung dalam urutan apapun. Terima kasih banyak kepada Cade.

M.

Martin Cowie
Martin Cowie
Jawaban edit 17 Maret 2016 в 11:11
26
0
Cade Roux
Cade Roux
2 Januari 2009 в 3:17
2009-01-02T15:17:29+00:00
Lebih
Sumber
Sunting
#8723689

Apakah anda yakin bahwa newline anda bukan CHR(13) + CHR(10), dalam hal ini, anda berakhir dengan CHR(13) + '_', yang mungkin masih terlihat seperti sebuah newline?

Coba REPLACE(col_name, CHR(13) + CHR(10), '')

14
0
Gordon Bell
Gordon Bell
2 Januari 2009 в 3:30
2009-01-02T15:30:38+00:00
Lebih
Sumber
Sunting
#8723690

Jika data dalam database Anda diposting dari kontrol TextArea bentuk HTML, browser yang berbeda menggunakan karakter Baris Baru yang berbeda:

Firefox memisahkan baris dengan CHR(10) saja

Internet Explorer memisahkan baris dengan CHR(13) + CHR(10)

Apple (pra-OSX) memisahkan baris dengan CHR(13) saja

Jadi, Anda mungkin memerlukan sesuatu seperti:

set col_name = replace(replace(col_name, CHR(13), ''), CHR(10), '')
Gordon Bell
Gordon Bell
Jawaban edit 2 Januari 2009 в 3:49
7
0
Related communities 3
Oracle Indonesia
Oracle Indonesia
767 pengguna
Group belajar, diskusi, dan berbagi tentang berbagai produk dan teknologi Oracle. Disclaimer: This group is not in any affilation nor maintained by the Oracle.
Buka telegram
OrcV2 🇲🇨Indonesia🇮🇩
OrcV2 🇲🇨Indonesia🇮🇩
163 pengguna
Website : https://orcv2token.tech/ Tg Global : https//t.me/orcv2
Buka telegram
Oracle_id
Oracle_id
61 pengguna
Oracle_id adalah komunitas Penikmat Oracle seluruh Indonesia, fokus membahas product2 Oracle
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
UbiBot UK
Terdaftar 15 jam yang lalu
2
Галина Утяшова
Terdaftar 1 hari yang lalu
3
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
4
Akshit Mehta
Terdaftar 1 minggu yang lalu
5
me you
Terdaftar 1 minggu yang lalu
ID
JA
KO
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi