【发布时间】:2013-05-09 05:18:14
【问题描述】:
我有 100 条记录。当我运行下面的代码时,SQL*Plus 连接打开了很多次,占用了 100% 的 CPU。有什么方法可以让我只打开一次 SQL*Plus 连接,即。 e.在while 循环之外?
**#!/bin/bash
export ORACLE_HOME=/software/oracle/ora10204
export PATH=$PATH:$ORACLE_HOME/bin
INPUT_FILE='file.csv'
IFS=','
i=0
while read name id do
a[i]="$name"
b[i]="$id"
echo "${a[$i]} ${b[$i]}"
set serveroutput on;
sqlplus .../...@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=...)(HOST=...)(PORT=...)))(CONNECT_DATA=(SID=...)))'<<EOF
insert into code_entry(inh_valu,edi_valu) values('${a[$i]}' , '${b[$i]}');
EOF
let i=$i+1
done < $INPUT_FILE**
【问题讨论】:
-
这是指向link的内联链接
-
这个数据文件是在服务器还是单独的客户端?您是否考虑过使用 SQL*Loader 或外部表来加载此文件?