ฐานข้อมูล

How to enables command-line history in SQL*PLUS

oracle-database SQL*PLUS (sqlplus) จะไม่สามารถกด ↑ “ขึ้น” หรือ ↓ “ลง” เพื่อดูคำสั่งก่อนหน้าได้ แต่สามารถตรวจสอบคำสั่งก่อนหน้าได้ 1 คำสั่งเท่านั้น ซึ่งอาจจะทำให้ไม่สะดวกในการใช้งาน เพราะถ้าหากต้องการส่งคำสั่งก่อนหน้าจำเป็นต้องพิมพ์ใหม่อีกครั้ง สำหรับ linux เราสามารถใช้ rlwrap ซึ่งทำหน้าที่เป็น intercept คำสั่ง SQL*PLUS ที่ user input เข้ามาไปเก็บไว้ใน history เพื่อให้ user สามารถดูคำสั่งย้อนหลังได้จากการกด “ขึ้น” หรือ ↓ “ลง”

วิธีการติดตั้งและใช้งาน rlwrap สำหรับ SQL*PLUS

  1. Install EPEL repo****CentOS 5 rpm -ivh http://mirror1.ku.ac.th/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm CentOS 6 rpm -ivh http://mirror1.ku.ac.th/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

  2. Install rlwrapyum install rlwrap

  3. แก้ไข bash_profile บน oracle user เพื่อให้เรียกใช้งาน rlwrap ทุกครั้ง

    su - oracle
    vi .bash_profile

      เพิ่มคำสั่งด้านล่างลงไป

    alias sqlplus='/usr/bin/rlwrap sqlplus'
    alias rman='/usr/bin/rlwrap rman'

เมื่อใช้งาน sqlplus จะสามารถกด ↑ “ขึ้น” หรือ ↓ “ลง” เพื่อดูคำสั่งก่อนหน้าได้ หรือสามารถกด “Crtl + r” เพื่อค้นหาคำสั่งก่อนหน้าได้รวดเร็วยิ่งขึ้น (เหมือนใน bash shell)

EOF.← กลับไปอ่านบทความอื่น