【发布时间】:2015-12-04 16:11:36
【问题描述】:
我对 SQL 还很陌生。我正在尝试将我拥有的脚本转换为存储过程,以便我可以运行:
dbms_scheduler.create_job (job_type => 'STORED_PROCEDURE')
调度器。
这是我的 SQL:
insert into EBA_PROJ_STATUS_HEALTH (DATESTAMP, WEEK, PROJECT_HEALTH, PROJECT_NAME, PROJECT_ID)
select
TO_DATE (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "DateStamp",
TO_CHAR (SYSDATE, 'WW') "WeekStamp",
decode (PROJECT_STATUS, '26080667600194118828749753718250690144', 'Red', '26080667600198954532028212234949514848', 'Green', '2608066760019489567412685398756201486', 'Yellow', '32151851918961403472745066957057582129', 'Terminated') Health,
PROJECT,
ID
from
EBA_PROJ_STATUS
【问题讨论】:
-
将您的插入语句移动到一个过程中(不要忘记提交;),然后配置 create_job 过程的所有相关参数
-
TO_DATE (SYSDATE)完全没有意义——实际上这是完全错误的。to_date()期望varchar,sysdate是date。TO_DATE (SYSDATE)将首先将sysdate隐式转换为varchar,以便再次将其转换回date。 永远不要在date上使用to_date()
标签: oracle oracle-apex procedure dbms-scheduler