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
我有一些 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