【发布时间】:2010-12-04 20:29:00
【问题描述】:
我在 Solaris 环境下工作,我使用的数据库是 Oracle 10g。
我正在尝试的骨架;
编写一个 ksh 脚本来执行以下操作。我不知道怎么做 在 shell 脚本中包含我的 sql 查询并循环 陈述。因此,在下面给出了我正在尝试的内容。
-
复制要处理的文件(一次一个文件,从 10 个列表中 文件夹中的文件)。
因为我在 * 做 cp $i /home/temp
2 。创建快照(n)表:初始化 n = 1
create table test insert account_no, balance from
records_all;
-- 创建我的快照表并插入记录 在 SQL 中
- 检查表是否创建成功:
select count(*) from snapshot1 -- 查询出号码
表中的记录数——总是固定的,比如 400000
if( select count(*) from snapshot(n) = 400000 )
echo " table creation successful.. proceed to the next step "
else
echo " problem creating table, exiting the script .. "
-
如果建表成功,
echo " select max(value) from results_all " -- 将最大值打印到控制台
使用以下作业处理我的文件:
./runscript.ksh - READ -i $m ( m - 初始值 001 )
./runscript.ksh - WRITE -i $m ( m - 初始值 001 -- 同 READ process_id )
-- 将 m 加 1
-
等待成功日志
tail -f log($m)* | -egrep "^SUCCESS"
循环到 step1 到: 将文件 2 复制到临时文件夹; 创建快照(n+1)表
复制完所有文件进行处理后退出。
done -- 步骤 1 结束
让我动起来的指针将非常有价值。
谢谢,
克里斯
【问题讨论】:
-
我不明白你的问题到底是什么。您是在问如何从 shell 脚本执行 sql 语句?
标签: oracle shell oracle10g ksh