来自 Linux 命令行的 Oracle SQL 脚本 运行 与 alter session
Oracle SQL script running from Linux command line with alter session
我们有一个 Java 应用程序,可以远程查询目录中的所有 SQL 文件并输出 CSV 文件。如果 SQL 文件只有 SELECT 命令,效果会很好。但是,为了以正确的格式获取日期时间,我想使用 ALTER session 命令。这会在 Java 应用程序中产生错误,因为它将每个命令都视为一个新文件。不幸的是,我无法访问 Java 应用程序的代码库。本质上,SQL 个文件如下所示:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
SELECT * from sample_table
有什么方法可以 运行 将 SQL 文件编辑为 运行 作为单个执行的查询吗?
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
是一个 DDL 语句。您不能将其作为 DML 语句执行。您的 Java 语句 class 将无法执行此 ALTER SESSION ... 查询。
此外,如果从数据库连接的角度来看,它仅在应用它的会话之前有效,下次它不会保持相同的值。
这种改变不能用这种方法永久地做出来,有一种不同的方法,这里是题外话(我知道是因为我曾经也有同样的需要,但是经过努力才知道的东西几天)。
您尝试实现结果的方式不正确。
将内容格式化为您希望在 中显示日期时间的任何格式,您不需要 ALTER SESSION 命令和 SELECT 查询。
使用 to_char(yourDate, 'YYYY-MM-DD HH24:MI:SS') as customDate
并尝试调整到您的主要 select 查询。
我们有一个 Java 应用程序,可以远程查询目录中的所有 SQL 文件并输出 CSV 文件。如果 SQL 文件只有 SELECT 命令,效果会很好。但是,为了以正确的格式获取日期时间,我想使用 ALTER session 命令。这会在 Java 应用程序中产生错误,因为它将每个命令都视为一个新文件。不幸的是,我无法访问 Java 应用程序的代码库。本质上,SQL 个文件如下所示:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
SELECT * from sample_table
有什么方法可以 运行 将 SQL 文件编辑为 运行 作为单个执行的查询吗?
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
是一个 DDL 语句。您不能将其作为 DML 语句执行。您的 Java 语句 class 将无法执行此 ALTER SESSION ... 查询。
此外,如果从数据库连接的角度来看,它仅在应用它的会话之前有效,下次它不会保持相同的值。
这种改变不能用这种方法永久地做出来,有一种不同的方法,这里是题外话(我知道是因为我曾经也有同样的需要,但是经过努力才知道的东西几天)。
您尝试实现结果的方式不正确。
将内容格式化为您希望在 中显示日期时间的任何格式,您不需要 ALTER SESSION 命令和 SELECT 查询。
使用 to_char(yourDate, 'YYYY-MM-DD HH24:MI:SS') as customDate
并尝试调整到您的主要 select 查询。