cd “C:/Users/” && DBDIR=”C:/Users//src/main/resources/db” && LOGDIR=”C:/Users//tmp/db_exec_20261114″ && LIST=”C:/Users//tmp/db_exec_list.txt” && : > “$LOGDIR/results.txt” && n=0 && while IFS= read -r f || [ -n “$f” ]; do f=$(printf ‘%s’ “$f” | tr -d ‘\r’); [ -z “$f” ] && continue; n=$((n+1)); safe=$(printf ‘%s’ “$f” | tr ‘/’ ‘_’); NLS_LANG=AMERICAN_AMERICA.AL32UTF8 sqlplus -S -L 168/168@localhost:1521/pdb > “$LOGDIR/$safe.log” 2>&1 <<SQL
SET DEFINE OFF
SET SQLBLANKLINES ON
SET PAGESIZE 200
SET LINESIZE 300
SET FEEDBACK OFF
WHENEVER SQLERROR CONTINUE
WHENEVER OSERROR CONTINUE
ALTER SESSION SET DDL_LOCK_TIMEOUT=30;
PROMPT === BEGIN $f ===
@”$DBDIR/$f”
PROMPT === END $f ===
EXIT
SQL
echo “$n|$f|exit=$?” >> “$LOGDIR/results.txt”; done < “$LIST”; echo “DONE scripts=$n”; echo “=== 退出码非0的脚本 ===”; grep -v “exit=0” “$LOGDIR/results.txt” | head -20
DONE scripts=60
=== 退出码非0的脚本 ===