有没有办法从unix.ctl文件中执行oracle过程。我试图从.sh文件调用该程序,并成功。但我需要从.ctl文件调用该过程。
am46iovg1#
您不能通过SQLLoader执行过程,不能。您可以对单个字段值进行转换,但这不是您在这里需要的。最简单的解决方案可能是有一个shell脚本,它调用SQLLoader,然后调用SQL*Plus来执行过程。作为一个非常粗略的概述:
#!/bin/bash sqlldr username/password control=/path/test_loading.ctl sqlplus username/password <<!EOF begin your_procedure(...); end; / !EOF
字符串因此,实际上,您已经使用脚本来调用过程,但添加了对SQL*Loader的调用。这可以让你的控制文件匹配你的“类似功能”,它只是有一个 shell 脚本 Package 它。
eni9jsuy2#
在命令行sqlldr userid=someuser@somepassword control=some_loader_script.ctl中执行此操作
2条答案
按热度按时间am46iovg1#
您不能通过SQLLoader执行过程,不能。您可以对单个字段值进行转换,但这不是您在这里需要的。
最简单的解决方案可能是有一个shell脚本,它调用SQLLoader,然后调用SQL*Plus来执行过程。作为一个非常粗略的概述:
字符串
因此,实际上,您已经使用脚本来调用过程,但添加了对SQL*Loader的调用。
这可以让你的控制文件匹配你的“类似功能”,它只是有一个 shell 脚本 Package 它。
eni9jsuy2#
在命令行sqlldr userid=someuser@somepassword control=some_loader_script.ctl中执行此操作