需求简介:编写shell从oracle数据库查询clob类型数据,并将数据逐条存入不同命名的.html文件,实现将数据库数据自动生成html文件
问题描述:1.sqlplus展示clob文件格式异常(中间会插入空格)
2.额外查询一个固定字段作为分隔符,发现分隔符出现在clob数据中间
3.使用awk获取数据时无法在awk内置函数中导入shell中的变量
解决方式:
问题一、二:
shell代码:
set pagesize 0;
set linesize 30000;
set heading off;
set feedback off;
set long 1024000;
set longchunksize 1020000;
解释:
在sqlplus -s ${USR} <<EOF 后
sql语句 前
设置linesize、long、longchunksize等 数值 数值需要尽量大
问题三:
shell代码:
iCount=1
while [[ ${iCount} -le 15 ]]
do
echo ${截取内容} | awk -F "分割符" '{print $i}' i=${iCount} >${日志名}
iCount=$((${iCount} + 1))
done
解释:
awk中想要调用shell定义的变量需要将赋值语句写在最后
本文介绍了如何通过Shell脚本在Linux环境下处理Oracle数据库中的CLOB类型数据,将内容逐条导出为HTML文件。在处理过程中,解决了CLOB数据展示时插入空格、分隔符位置错误以及在awk中使用Shell变量的问题。通过设置sqlplus的相关参数和巧妙地使用awk,成功实现了数据的正确分割和存储。
4320





