命令行脚本,用于根据列值删除Oracle记录

时间:2011-03-13 13:21:08

标签: sql oracle cmd

我对脚本技术完全陌生。

我的要求是

  1. 通过DOS脚本连接oracle
  2. 基于列值需要删除特定记录
  3. 例如:

    emp   sal    pt_dt
    a     23     22-02-11
    b     34     20-01-10
    c     45     23-09-85
    d     56     30-3-11
    

    根据30-3-11(pt_dt列),我需要删除记录d。

    操作系统 - Windows XP DB - Oracle 10g

2 个答案:

答案 0 :(得分:3)

最简单的方法是首先编写sql(例如deleterec.sql)脚本,然后从批处理(例如deleterec.bat)脚本中调用它。

deleterec.sql的示例内容:

DELETE emp WHERE pt_dt = TO_DATE('30-03-2011','DD-MM-RRRR');

deleterec.bat的示例内容:

sqlplus.exe scott/tiger@orcl @deleterec.sql

(用您的用户名,密码和数据库实例替换scott / tiger @ orcl)

答案 1 :(得分:1)

你可以像这样写一个.bat:

@echo off
if %%1X==X goto noparam
echo DELETE FROM emp e WHERE e.emp = '%%1' > deleterec.sql
sqlplus.exe scott/tiger@orcl @deleterec.sql
delete deleterec.sql
goto end
:noparam
echo Usage: %%0 {employee id}
goto end
:end
echo Bye!

我承认我从Jeffrey的回答中偷走了sqlplus电话。 :-o