Web 日志时间戳导入到 Oracle SQL

Web logs timestamp import to Oracle SQL

我有一些 Web 日志正试图导入 Oracle SQL table。 table 有时间戳和 varchar 表示何时发出请求和 url。 我将日志格式化为如下所示:

"Nov 1 2021 2:12:54.856 CDT","/webfolder1/file.html"
"Dec 11 2021 5:32:13.34 CDT","/webfolder1/file2.html"

我使用 SQL 开发人员工具将此文件导入 Oracle table,但它不喜欢第一列中的日期。

VALUES (to_timestamp('Nov 1 2021 2:12:54.856 CDT'), '/webfolder1/file.html')
...

错误:

ORA-01858: a non-numeric character was found where a numeric was expected

我是否需要使用 sed/awk 或其他一些实用程序将日期更改为 Oracle 可接受的其他格式?

使用TO_TIMESTAMP_TZ并指定格式模型和语言:

CREATE TABLE table_name (
  ts       TIMESTAMP WITH TIME ZONE,
  filename VARCHAR2(50)
);

然后:

INSERT INTO table_name (ts, filename) VALUES (
  to_timestamp_tz(
    'Nov 1 2021 2:12:54.856 CDT',
    'Mon DD YYYY HH24:MI:SS.FF3 TZD',
    'NLS_DATE_LANGUAGE=English'
  ),
  '/webfolder1/file.html'
);

db<>fiddle here