如何解决从 Oracle 转换到 BigQuery
-- LOG_QUERY (Procedure)
--
CREATE OR REPLACE Procedure EXAMPLE
(
THREAD_ID STRING,PID NUMERIC,MODULE STRING,SUBMODULE STRING,SCRIPT_NAME STRING,NUMSEQ NUMERIC,sql_ID STRING,REQ_1 STRING,REQ_2 STRING,TS_START_TIME TIMESTAMP,TS_END_TIME TIMESTAMP,RC_sql NUMERIC,RC_ORA NUMERIC,NB_ROWS NUMERIC,INTERFACE_ID STRING,TS DATE
)
BEGIN Pragma AS AUTONOMOUS_TRANSACTION;
TimeElapsed NUMERIC;
Begin
TimeElapsed := Extract(Day From TS_END_TIME - TS_START_TIME) * 24 * 60 * 60 * 1000
+ Extract(Hour From TS_END_TIME - TS_START_TIME) * 60 * 60 * 1000
+ Extract(Minute From TS_END_TIME - TS_START_TIME) * 60 * 1000
+ Round(Extract(Second From TS_END_TIME - TS_START_TIME) * 1000)
;
Execute Immediate '
Insert Into EXAMPLETABLE
(
THREAD_ID,PID,NUMSEQ,sql_ID,sql,SCRIPT_NAME,SUBMODULE_NAME,MODULE_NAME,TS_START_TIME,TS_END_TIME,TIME_ELAPSED,RC_sql,RC_ORA,NB_ROWS,INTERFACE_ID,TIMESTAMP
) Values (
:thread_id,:pid,:numseq,:sql_id,:sql,:script_name,:submodule,:module,:ts_start_time,:ts_end_time,:time_elapsed,:rc_sql,:rc_ora,:nb_rows,:interface_id,:ts
)'
Using
THREAD_ID,REQ_1||REQ_2,SUBMODULE,MODULE,TimeElapsed,TS
;
Commit Write Batch Nowait ;
Exception
When Others Then NULL;
End;
上面的代码是原始代码,不幸的是我无法取得任何进展,我坚持使用 Pragma 并试图找到一种方法来提取日期,将“-”替换为 date_diff,非常感谢。这是我的第一篇文章,抱歉,如果我不是很清楚,我需要的是转换为 sql 标准以在 bigquery 上运行它,非常感谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。