我有一个* .sql脚本文件,此文件中有一些cell.imageTapDelegate = self
func didTapProfileImage(with imageUrl: String) {
print("Profile image tapped")
let storyboard = UIStoryboard(name: "SbIdentifier", bundle: nil)
let profileVC = storyboard.instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
profileVC.imageUrl = imageUrl
self.navigationController?.pushViewController(profileVC, animated: true)
}
个connands强制用户键入somthing。
我想用sqlplus执行这个脚本文件并以某种方式压制提示问题。
有没有办法压制问题并用预先定义的变量替换它的值?
这是我的测试代码:
PROMPT
以及我如何执行它的方式:
set define on
set define $
SET VERIFY OFF
SET HEADING OFF
DEFINE semaowner = "hello" (CHAR);
accept semaowner prompt "schema owner: "
select '$semaowner' semaowner from dual;
quit;
但是它不起作用,因为提示符出现了sqlplus sys/ora123@host:port/schema as sysdba @prompt-demo.sql
命令。
答案 0 :(得分:2)
您可以从命令行提供对提示的响应,必要时包装在shell脚本/批处理文件中:
echo schema_name | sqlplus sys/ora123@host:port/schema as sysdba @prompt-demo.sql
适用于Windows和Linux。
所以你可以在dev中用(大概)一个固定的已知值来做到这一点;并且在生产中只需像以前一样运行它,并且必须手动输入值。
您仍然会在开发中看到提示文字,但它不会停止并等待输入。
如果您有多个提示,则可以使用多个回声:
(echo schema_name && echo something_else) | sqlplus ...
也适用于两者;在Linux中,您还可以使用带有嵌入换行符的单个print语句:
print "schema_name\nsomething_else\n" | sqlplus ...
或heredoc:
sqlplus sys/ora123@host:port/schema as sysdba @prompt-demo.sql <<!EOF
schema_name
something_else
!EOF
但是这对Windows开发框没有帮助。 (在Windows上可能有一个heredoc等价物,但我认为它基本上重新排列回声...)