มือใหม่หัดใช้สคริปต์ Unix และคำสั่ง Oracle จึงเป็นเรื่องง่าย...
ฉันมีฟิลด์ที่เต็มไปด้วยอักขระที่ไม่ถูกต้องและโดยเฉพาะ chr(191) ' inverted ? เข้าสู่ระบบ'..
ฉันมีโค้ดตัวอย่างนี้
UPDATE rc.rc_descripton
SET desc_description =
(
CASE
WHEN desc_description LIKE '%[^a-zA-Z0-9]%'
THEN Replace(REPLACE( desc_description, SUBSTRING( desc_description, PATINDEX('%[~,@,#,$,%,&,*,^,&,%,*,(,)]%', desc_description), 1 ),''),'-',' ')
ELSE desc_description
END
)
แม้ว่าคำสั่ง UPDATE ดั้งเดิมของฉันคือ: -
UPDATE rc.rc_description
SET desc_description = REPLACE(desc_description, CHR(191), ' ')
WHERE desc_description LIKE '%' || CHR(191) || '%'
ฉันต้องการรวมโค้ดข้างต้นเข้ากับโค้ดตัวอย่างหลักที่ฉันโพสต์ไว้ด้านบน
ฉันพบสคริปต์ยูนิกซ์ที่ใช้ก่อนหน้านี้:
# Replace offending characters with the intending/valid characters
sed s/–/-/g $1 | sed s/’/\'/g | sed s/‘/\'/g | sed s//\'/g | sed s//\'/g | sed s//\"/g | sed s//\"/g | sed s/“/\"/g | sed s/”/\"/g | sed s/—/-/g | sed s//-/g | sed s/…/.../g | sed s/‑/-/g | sed 's/½/1\/2/g' | sed 's/¼/1\/4/g' | sed 's/¾/3\/4/g' | sed 's/· //g' | sed s/°/./g | sed s/•/*/g | sed s/ //g > $1.out
แต่ฉันไม่สามารถแปลโค้ดยูนิกซ์เป็นคำสั่งอัพเดตของ Oracle ได้
กรุณาแนะนำคำสั่ง UPDATE ที่ถูกต้องเพื่อรองรับชุดอักขระพิเศษทั้งหมดข้างต้น และคำนึงถึง CHR(191) ด้วย...
ขอแสดงความนับถือ A.B.
” “ ’ ‘
ในสตริงที่เก็บไว้ และลูกค้าของคุณไม่ทราบวิธีเรนเดอร์ ซึ่งโดยปกติแล้วจะเป็นปัญหาเกี่ยวกับการตั้งค่า - person Alex Poole   schedule 13.01.2016