标签: sqlcl

SQLCL批处理脚本:自动连接+导出CSV

SQLCL正是我所需要的,但我在一件小事上遇到了很大的困难:

我想制作一个带有自动连接的脚本(批处理文件),并且只是在EXPORT CSV之后(在远程桌面上:不在服务器上).

所以我在批处理文件中使用带有SQLCL的管道方法:

echo SET SQLFORMAT CSV <
echo SPOOL export.csv <
echo SELECT COUNT(*) FROM ARTICLE; <
echo SPOOL OFF | C:\Work\Soft\sqlcl\bin\sql.exe login/passwd@xxx.xxx.xxx.xxx:1521/DB.SCH
Run Code Online (Sandbox Code Playgroud)

它正在工作(在控制台中没有错误),但是,找不到文件export.csv:当我改变目的地时,c:\...它也在工作,但是找不到创建的文件.它与SQL Developer一起正常运行,文件在我的dekstop上创建,所以我不明白为什么SQLCL的情况不同.

scripting batch-file export-to-csv sqlcl

8
推荐指数
1
解决办法
2068
查看次数

如何使用SQLcl和SQLPlus连接到Oracle数据库,但没有TNSNames.ORA文件?

你有:

  1. 一个Oracle数据库
  2. Oracle客户端安装,包括SQL*Plus
  3. #1的TNS信息
  4. 但没有TNSNames.ORA文件或创建和维护一个文件的愿望

你怎么能得到你的SQL*Plus连接?

oracle tnsnames sqlplus sqlcl

3
推荐指数
1
解决办法
2150
查看次数

使用 util.execute 时如何在 SQLcl 脚本中获取 Oracle 异常?

我尝试使用 Oracle SQLcl 编写批处理文件。在此文件中,我想插入一个新的表行util.execute。这仅返回true/ false,这是成功/失败的布尔值返回。
我的问题是,我如何获取引发的异常的错误消息,以便我可以找出我的插入语句的问题所在。

我做什么:
首先,我连接到我的数据库服务器并启动我的脚本:

me@pc:/myproject$ /sqlcl/bin/sql schemaname/pw@server.com:1521/sid


SQLcl: Release 17.3.0 Production [...]

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit [...]

SQL> 
SQL> @mybatchscript.js path/image.jpg
Run Code Online (Sandbox Code Playgroud)

我的mybatchscript.js看起来像这样:

script
var tabName = "MY_TABLE_NAME";
var HashMap = Java.type("java.util.HashMap");
var bindmap = new HashMap();
var filePath="&1";
print("\nreading file: "+ filePath);
var blob=conn.createBlob();
var bstream=blob.setBinaryStream(1);

java.nio.file.Files.copy(java.nio.file.FileSystems.getDefault().getPath(filePath),bstream);
bstream.flush();
bindmap.put("content",blob); // has content
bindmap.put("size",blob.length()); // is 341989
// the follow command fails
var doInsert …
Run Code Online (Sandbox Code Playgroud)

oracle error-handling exception sqlcl

2
推荐指数
1
解决办法
1431
查看次数

为什么我不能使用SQLcl通过jdbc连接

我可以使用SQLDeveloper连接到远程数据库.

我试图从命令行使用sqlcl连接到同一个数据库,但我收到一个错误.

这是我正在运行的命令:

/bin/sql username/pass@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

/bin/sql username/pass@//delphix.......etc.
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

SQLcl: Release 4.2.0.16.131.1023 RC on Wed Jun 15 11:36:33 2016

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

  USER          = username
  URL           = jdbc:oracle:thin:@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14
  Error Message = Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
Username? (RETRYING) ('username/*********@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14'?) 
Run Code Online (Sandbox Code Playgroud)

同样在SQLDeveloper中,我只是在"自定义jdbc url"下输入以下内容并且它连接没有任何问题,所以我希望我可以使用相同的URL通过命令行连接,但到目前为止,它无法正常工作:

jdbc:oracle:thin:@delphix-vdb-n-1.va2.b2c.nike.com:1521:vdbsl4
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus sqlcl

0
推荐指数
1
解决办法
2488
查看次数