命令行客户端使用方法
在Linux环境下使用sqlplus,disql客户端连接数据库服务的使用时,当用户密码含有特殊字符,需要转义才能正确连接到数据库实例。
-
将密码用双引号圈起,再将用户和密码用单引号圈起
-
# 格式 sqlplus \'dbuser/"dbpass"\'@tnsname # 示例 sqlplus \'angel/"p@ssw0rd123"\'@orcl
-
-
直接将密码用双引号再加单引号圈起
-
# 格式 sqlplus dbuser/\'"dbpass"\'@tnsname # 示例 sqlplus angel/\'"p@ssw0rd123"\'@orcl
-
用户密码通过变量传入,上面的方法在shell中不可用
使用方法1
DB_USER=\'test\'
DB_PASS=\'p#ssw0rd123\'
CONN_STR=\'o18c:55336\'
DISQL=\'/home/dmdba/dm7/bin/disql\'
DM_CONN=\\'${DB_USER}/\"${DB_PASS}\"\\'
[[ ! -z "${CONN_STR}" ]] && DM_CONN=${DM_CONN}@${CONN_STR}
echo ${DM_CONN}
${DISQL} -L ${DM_CONN}
使用方法2
DB_USER=\'test\'
DB_PASS=\'p#ssw0rd123\'
CONN_STR=\'o18c:55336\'
DISQL=\'/home/dmdba/dm7/bin/disql\'
DM_CONN=${DB_USER}/\\'\"${DB_PASS}\"\\'
[[ ! -z "${CONN_STR}" ]] && DM_CONN=${DM_CONN}@${CONN_STR}
${DISQL} -L ${DM_CONN}
在shell中解决密码含有特殊字符连接问题
DB_USER=\'test\'
DB_PASS=\'p#ssw0rd123\'
DB_PASS="\"${DB_PASS}\""
CONN_STR=\'o18c:55336\'
DISQL=\'/home/dmdba/dm7/bin/disql\'
DM_CONN="${DB_USER}/${DB_PASS}"
[[ ! -z "${CONN_STR}" ]] && DM_CONN="${DM_CONN}@${CONN_STR}"
echo ${DM_CONN}
${DISQL} -L ${DM_CONN}