【问题标题】:how to declare a date (with time) variable in pl/sql如何在 pl/sql 中声明日期(带时间)变量
【发布时间】:2018-03-07 22:16:28
【问题描述】:
我想在 pl/sql 中使用日期(DD/MM/YYYY HH:MI:SS)变量。我正在使用以下代码,但它不起作用:
BEGIN
declare dateMig date ;
dateMig := to_date('19/05/2017 05:05:00', 'DD/MM/YYYY HH:MI:SS');
exec P_MY_PROC(100,'CHECK',dateMig);
END;
有人可以帮忙吗?我做错了什么?
【问题讨论】:
标签:
date
plsql
oracle-sqldeveloper
plsqldeveloper
【解决方案1】:
如果您能解释“不起作用”是什么意思会很有帮助 - 即您收到的任何错误消息和/或意外结果。
但是,您的程序有几个明显的问题:
您在执行块中有声明部分 - 这对您想要做的事情不起作用。 PL/SQL 程序依次由声明部分、执行部分和异常部分组成。
您正尝试在 PL/SQL 程序中使用 exec 调用过程。这是行不通的,因为exec(或者,给它的全名,execute)是一个 SQL*Plus 命令而不是 PL/SQL 命令,它允许您从命令行运行一个过程而无需将其嵌套在开始/结束块中。在 PL/SQL 中你不需要使用 exec。
因此,您的代码应如下所示:
declare
datemig date;
begin
datemig := to_date('19/05/2017 05:05:00', 'dd/mm/yyyy hh24:mi:ss');
p_my_proc(100, 'CHECK', datemig);
end;