如何把shell脚本的变量赋值给sql语句作为条件或插入数据的值

如何把shell脚本的变量赋值给sql语句作为条件或插入数据的值,第1张

variable=xxx

sqlplus -s dbuser/dbpas <<!

    select  from table where table_column=$variable;

    exit;

!

是不是要这样脚本:

sqlplus -S system/system  <<EOF

set feedback off

set heading off

set pagesize 0

set linesize 200

set echo off

set termout off

spool txt/fbfjmxbtxt

select  from ORD_PEO_TXNPCL WHERE SUBSTR(TRIM(YJHM),1,1)='9' AND TRUNC(CLDATE,'dd')=TRUNC(SYSDATE,'dd');

spool off

exit;

EOF

既然能执行select语句,update,delete,执行过程和函数是没有任何问题的。

在DB2数据中,在导出DEL文件时,默认的字符分隔符是"、字段分隔符是, (逗号)。有一个需求是要为Oracle数据库提供数据,因此就想使用“|”作为数据的字段分隔符。在查看了export的使用说明后,发现export的file-mod模式中可以通过CHARDELx和COLDELx,分别设置字符分隔符和字段分隔符。

注意:导出文件的分隔符是和数据库的代码页有关联的,即在代码页为819的数据库下,可以使用任何的字符(ASCII码)作为数据的分隔符,但是代码页为1386的数据库只能使用ASCII码值在0x00 - 0x3F 范围内的字符。

首先,想在shell中连接数据库,首先要在连接数据的机器上安装mongodb的客户端才可以。

然后,连接mongodb的命令如下:

/home/test/mongodb/mongodb-223/bin/mongo 127001:8888

这个是我的数据库配置,没有设置用户名密码。所以直接通过该命令就可以连接。

连结后会有一个默认连接的数据库。

mongodb常用命令:

查看数据库命令:

show dbs;

查看集合命令:

show collections;

切换数据库:

use databaseName;

查询数据:

db集合名find()

插入数据:

db集合名insert({name:'test',age:1});

删除:

dbtestremove();

sql="dbtestinsert({name:'test',age:1});"//定义执行的sqlecho "$sql"|/home/test/mongodb/mongodb-223/bin/mongo 127001:8888/test --shell

注意,echo命令中的格式必须这样写,管线命令后面的是是数据库安装地址 然后是ip:端口号,斜线后是数据库名称,--shell表示通过shell交互!

-h 是远程连接访问mysql 127001 是本机ip

写入shell可以这样 :

mysql -u你的用户名 -p密码 <<END

mysql命令

exit;

END

/home/zyxf/BinaryConverter/BinaryConverter -af -h127001 -uroot -w123456 -d${db}

不清楚是什么 看表面意思像是将数据库转换成二进制保存的意思。 -af 这些应该是BinaryConverter 这个命令的参数你可以尝试man BinaryConverter来查看他。

你这最近修改有点模糊啊

使用find 命令查询最近修改的就好了

Mysql 我还不是很会,不过万能百度命令如下,

如果你的mysql里面没有数据库,先新建一个空的数据库abc, 然后用mysqldump -u 用户名 -p 密码 -B abc< asql 这个命令 就能把asql导入到数据库abc里了

如果还有不明白的私信我就好,看到会回复你

cd  /data/apps/demo/>

find -name  'sql'  -mtime 1   查找修改时间超过1天的sql 文件

#!/bin/sh

username="yourusername"

password="yourpassword"

dbname="yourdbname"

tablename="yourtablename"

cat wordtxt | while read line

do

{

field1=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f1-2}`

field2=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f3}`

field3=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f4}`

###################################################数据库输入

temp=`echo "describe $tablename" | mysql -u $username -p$password "$dbname" | sed '1d' | awk '{print $1}'`

head="INSERT INTO $tablename VALUES ("

tail=");"

tt=`

for loop in $temp

do

eval echo "\'"\\$$loop"\',"

done

`

value=`echo "$head$tt$tail"`

sql=`echo "$value" | sed 's/,)/)/g'`

echo "$sql" | mysql -u $username -p$password "$dbname"

}

done

####数据库自己建立,库名,表名,用户名,密码在开头自己定义,

###你数据库字段名分别为field1 field2 field3

以上就是关于如何把shell脚本的变量赋值给sql语句作为条件或插入数据的值全部的内容,包括:如何把shell脚本的变量赋值给sql语句作为条件或插入数据的值、如何在shell脚本中嵌入Oracle数据库 *** 作、如何用shell脚本把del格式文件导入的DB2数据库表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9734302.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存