gpt4 book ai didi

xml - 在导入具有特定 'batchnumber' 标记的 xml 文件之前查询 Oracle 表是否存在 'batchnumber'

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:17 25 4
gpt4 key购买 nike

我目前正在为一个项目制作一个很好的谜题,也许你们中的一些人已经做过类似的事情:

它需要是一个 Linux shell 脚本

以下是需要采取的步骤:

  1. xml文件放置在linux数据库服务器(oracle)上

  2. xml 文件经过验证(我使用过 xmllint,这有效)

  3. xml 文件包含批号,在导入之前,批号不允许出现在数据库中,那么如何将文件中的值传递到 sql 查询中(也许带有 if..then...else 子句?)

预先感谢您的帮助!!

最佳答案

如果脚本用户有权访问sqlplus,则可以从shell脚本执行它并解析结果。

batchnum.sql

--  ==== batchnum.sql ===============
var bnum varchar2(32)
exec :bnum=&1
select count(*) from tablename where batchnumber=':bnum';
-- ========================

在 shell 脚本中执行命令:

value=`sqlplus uname/pass @batchnum.sql 12345`

然后使用 grep 或类似方法解析 $value

注释:

  • 未经测试的代码;我不能保证 var/exec block 的语法
  • 我假设 batchnumvarchar2(32);您需要根据您的实际类型来定义它
  • var/exec 构造有点麻烦,但使用绑定(bind)变量。这允许 Oracle 的 SQL 解析器缓存查询,这将提高多次连续调用的性能
  • 无异常处理;留给你作为练习:)
  • 不验证输入参数;也留给你作为练习。请务必以具有最小权限的用户身份调用此函数

关于xml - 在导入具有特定 'batchnumber' 标记的 xml 文件之前查询 Oracle 表是否存在 'batchnumber',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12932575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com