【发布时间】:2016-02-15 04:00:43
【问题描述】:
我想创建一个只在三月份进行插入的存储过程。存储过程应接受表的值,但使用系统日期来确定是否应插入记录。
这是我正在尝试的,但创建的过程有错误。
CREATE OR REPLACE PROCEDURE sp_time_1203383 (
p_sales_id IN sales_1203383.SALES_ID%TYPE,
p_product IN sales_1203383.PRODUCT%TYPE,
p_unitcost IN sales_1203383.UNITCOST%TYPE,
p_quantity IN sales_1203383.QUANTITY%TYPE
)
IS
BEGIN
IF( MONTH( GETDATE() ) = 3 )
BEGIN
INSERT INTO sales_1203383 ("SALES_ID", "PRODUCT", "UNITCOST", "QUANTITY")
VALUES (p_sales_id, p_product,p_unitcost, p_quantity);
END
ELSE
BEGIN
SELECT 'Can Only insert during the month of March'
END
COMMIT;
END;
【问题讨论】:
-
您遇到了什么错误?还有为什么不直接测试
IF( MONTH( GETDATE() ) = 3 ) -
我正在使用 oracle 11g 命令行,它说创建的过程存在编译错误
-
我尝试了你的建议..同样的错误@Dai
-
请发布您从数据库系统获得的准确错误消息,包括任何错误代码、行号或字符偏移量。
-
请求只在某个月份插入的过程,使用sysdate;一个附有数字的表格。这闻起来很糟糕。也许你可以解释一下大局。
标签: stored-procedures oracle11g sql-insert