我想通过 Windows 命令提示符通过 SQL Plus 运行 Oracle 脚本。该脚本不包含“退出”命令,但我仍然希望 SQL Plus 退出,在脚本完成时将控制权返回到命令提示符。我的目标是在不修改脚本的情况下做到这一点。这可能吗?
我有一个 PL/SQL 脚本,我正在尝试使用 SQLPLUS 从命令外壳运行它。然而,每当我去运行它时,我得到的只是一个数字和一个等待输入的光标。当我按回车键时,它只会增加数字并重复该过程。这是一个做同样事情的虚拟查询
set serveroutput on
DECLARE
cursor getServerTime IS
SELECT sysdate as t from dual;
myTime getServerTime%ROWTYPE;
BEGIN
open getServerTime;
FETCH getServerTime into myTime;
dbms_output.put_line(myTime.t);
close getServerTime;
END;
Run Code Online (Sandbox Code Playgroud)
从我使用的命令外壳运行它: sqlplus me/myPass@myDB @"dummy.sql"
我在 bash 中运行 SQL*Plus 时遇到问题。这是我的代码
#!/bin/bash
#curl http://192.168.168.165:8080/api_test/xsql/f_exp_order_1016.xsql > script.sql
wget -O script.sql 192.168.168.165:8080/api_test/xsql/f_exp_order_1016.xsql
set NLS_LANG=_.UTF8
sqlplus /nolog << ENDL
connect login/password
set sqlblanklines on
start script.sql
exit
<<endl
Run Code Online (Sandbox Code Playgroud)
我从我们的内网下载插入语句,将其放入 sql 文件并通过 SQL*Plus 运行它。这工作正常。我的问题是,当我保存文件 script.sql 时,我的编码出错了。所有特殊字符(如 íáš?)都已损坏,这导致将错误的字符插入到我的数据库中。该文件的编码是 UTF-8,我们内网的 XSQL 页面上也设置了 UTF-8。所以我真的不知道哪里有问题。
也欢迎任何关于我的脚本的建议,我是 Linux 脚本的新手:-)
我正在尝试使用 sqlplus.exe 和以下命令连接到 Oracle XE 数据库:
CONNECT SYSTEM/password@
Run Code Online (Sandbox Code Playgroud)
是的,没错,“@”符号是密码的最后一个字母,需要转义。:(
非常感谢。