sqlplus是Oracle的命令行工具,需先安装Oracle Instant Client(基础包+sqlplus包)。步骤如下:
instantclient-basiclite-linux.x64-XX.X.zip
(基础包)和instantclient-sqlplus-linux.x64-XX.X.zip
(sqlplus包)。/usr/local/sqlplus
目录(或其他自定义目录),并创建符号链接简化路径:mv /usr/local/instantclient_XX_X /usr/local/sqlplus
ln -s /usr/local/sqlplus/sqlplus /usr/local/bin/sqlplus
~/.bash_profile
(或~/.bashrc
),添加以下内容并执行source
使其生效:export ORACLE_HOME=/usr/local/sqlplus
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH
这样即可在终端直接调用sqlplus
命令。sudo apt install rlwrap
echo "alias sqlplus='rlwrap sqlplus'" >> ~/.bash_profile
source ~/.bash_profile
配置后,输入sqlplus
即可享受更便捷的命令行操作。SET
命令调整显示参数,提升可读性:SET LINESIZE 180 -- 设置每行显示宽度(避免换行)
SET PAGESIZE 100 -- 设置每页显示行数(减少分页)
SET FEEDBACK OFF -- 关闭查询结果的“X rows selected”提示
SET HEADING ON -- 显示列标题
SET TRIMOUT ON -- 去除输出右侧空格
SET TRIMSPOOL ON -- 去除spool文件中的右侧空格
COLUMN
命令调整特定列的显示方式(如宽度、对齐):COLUMN employee_name FORMAT A20 -- 将employee_name列宽设为20字符
COLUMN salary FORMAT 999,999.99 -- 格式化薪资列为带千位分隔符的数值
COLUMN hire_date FORMAT A10 -- 将日期列格式化为“YYYY-MM-DD”
这些设置可保存到$ORACLE_HOME/sqlplus/admin/glogin.sql
文件中,实现每次登录自动加载。@
命令运行缓冲区中的SQL语句(如刚输入的SELECT * FROM employees;
)。@
命令执行SQL文件(如@query.sql
),或使用SPOOL
导出结果到文件:SPOOL /tmp/employees.csv
SELECT * FROM employees;
SPOOL OFF
导出的CSV文件可直接用Excel打开。# script.sh
NAME="$1"
sqlplus -S test/test <<EOF
SELECT * FROM employees WHERE name = UPPER('$NAME');
EXIT
EOF
执行./script.sh John
即可查询姓名为“John”的员工信息。-S
(静默模式)和/nolog
,通过ACCEPT
命令让用户输入密码:sqlplus -S /nolog <<EOF
ACCEPT pwd PROMPT 'Enter password: '
CONNECT test/$pwd
SELECT * FROM employees;
EXIT
EOF
u_test.txt
),避免密码泄露:echo 'test' > /home/user/u_test.txt
chmod 600 /home/user/u_test.txt
sqlplus -S /nolog <<EOF
CONNECT test/$(cat /home/user/u_test.txt)
SELECT * FROM employees;
EXIT
EOF
注意:文件权限需设置为600
,防止其他用户读取。-S
(静默模式)和EXIT
命令,将sqlplus结果赋值给Shell变量:# 获取员工数量
VALUE=$(sqlplus -S test/test <<EOF
SET HEADING OFF FEEDBACK OFF VERIFY OFF
SELECT COUNT(*) FROM employees;
EXIT
EOF
)
echo "Employee count: $VALUE"
crontab -e
# 添加以下内容(每天凌晨2点执行)
0 2 * * * /path/to/export_script.sh
脚本中可包含SPOOL
命令,将结果导出到指定目录。ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; -- 设置日期格式
ALTER SESSION SET NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8'; -- 设置字符集(避免乱码)
LIST
命令查看当前缓冲区中的SQL语句,CLEAR BUFFER
清除缓冲区。以上技巧覆盖了Debian上sqlplus的安装、交互、输出优化、脚本集成等场景,可显著提升使用效率和体验。