【发布时间】:2020-03-06 17:01:51
【问题描述】:
我需要使用 Powershell 读取 Oracle 表列(其数据类型为 TIMESTAMP(6) 和时区)或使用 Powershell 将时间戳数据类型转换为字符串。
表:
select * from job;
表格的数据类型:
JOB_id : 编号 日期:时间戳(6)与时区 $query = "SELECT * FROM JOB WHERE JOB_ID=12345"
$command=$connection.CreateCommand()
$command.CommandText=$query
$reader=$command.ExecuteReader()
while ($reader.Read()) {
$date=$reader.getInt32(0).ToString()
Write-Output $date
}
错误信息:
Exception calling "GetString" with "1" argument(s): "Specified cast is
not valid." At D:\SelfAnalysisKit\job.ps1:765 char:15
+ $date=$reader.Getstring(2)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : InvalidCastException
【问题讨论】:
-
日期戳既不是整数也不是字符串。同样,读者的结果是
SqlDataReader你有一些严重的数据类型问题 -
如果你还是把它转换成一个字符串,你可以在你的sql中做=>
TO_CHAR(DATE , 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM')你所要做的就是调整日期的格式
标签: powershell oracle11g