mysql LOAD DATA FILE 无法访问 unix shell 变量

标签 mysql sql mariadb

我正在使用MYSQL LOAD DATA实用程序来加载数据。为了简单起见,我将整个命令移至控制文件中。输入文件的路径,我保存在一个名为C_PATHSHELL 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/

相关文章:

java - 未安装名为 "org.mariadb.jdbc.Driver"的 JBOSS 驱动程序

mysql - 从 SQL 文件创建数据库

mysql - 对于包含日期时间的重复多列键不起作用

MySQL将两列合并为一列,一列另一行

sql - where子句中的用例

sql - 从 SQL 语句中删除注释的正则表达式

mysql select not 不起作用

mysql - 提高mysql性能

php - 阿拉伯语没有插入mysql数据库

python - 使用 MariaDB 10.2 安装 mysqlclient 时出错