我正在使用MYSQL LOAD DATA实用程序来加载数据。为了简单起见,我将整个命令移至控制文件中。输入文件的路径,我保存在一个名为C_PATH的SHELL VARIABLE中,并且也在UNIX中导出。但是 MySQL 无法访问该文件的路径,因为它无法解释环境变量值。
下面是Ctrl文件的命令和内容。
mysql -uuser -ppwd -hhost_name schema_name -e "$(cat /home/jboss/maria_test_YYYYMMDD/IXQDWFIS.ctl)"
/home/jboss/maria_test_YYYYMMDD/hello.ctl)
内容如下:
load data
LOCAL INFILE `'$C_PATH/hello.uld'`
into table IXQDWFIS
CHARACTER SET UTF8
fields terminated by '~'
LINES TERMINATED BY '\n'
(EMP_NO,
EMP_NAME
)
错误:
ERROR 2 (HY000) at line 1: File '$C_PATH/hello.uld'
最佳答案
您必须运行代码而不是打印它:
mysql -uuser -ppwd -hhost_name schema_name \
-e "$(echo `cat /home/jboss/maria_test_YYYYMMDD/IXQDWFIS.ctl`)
关于mysql LOAD DATA FILE 无法访问 unix shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44772534/