首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >忽略SQL Procedures语句

忽略SQL Procedures语句
EN

Stack Overflow用户
提问于 2018-05-30 05:07:29
回答 1查看 70关注 0票数 0

我想写一个过程,它接受两个日期作为输入(一个持续时间),并更新开始日期在此持续时间内的每个每周报告的佣金金额。佣金金额是销售额与佣金率(%)的乘积。

代码语言:javascript
复制
    CREATE OR REPLACE PROCEDURE updateweekly_sales_report
(p_start IN WEEKLY_SALES_REPORT.StartDate%TYPE, p_end IN 
weekly_sales_report.EndDate%TYPE)
IS
BEGIN
UPDATE WEEKLY_SALES_REPORT SET ComAmount = SaleAmount*ComRate where 
(StartDate-EndDate) = (p_start- p_end);
SELECT concat('The commission amount for report ',ReportID,' has been updated 
to ',ComAmount,' dollars, 
which is',ComRate,'% of the total sale amount of ',SaleAmount,' dollars.')
COMMIT;
END;
/
BEGIN
   updateweekly_sales_report('2018-04-02','2018-04-08');
END;
/

我有两个错误行/列错误

6/1 PL/ SQL : SQL语句已忽略6/8 PL/SQL: ORA-00909:无效的参数数量

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 07:28:25

'2018-04-02''2018-04-08'是字符串,而不是日期。要传入实际的DATE类型,您需要使用TO_DATE函数将字符串转换为日期:

代码语言:javascript
复制
BEGIN
  updateweekly_sales_report(TO_DATE('2018-04-02', 'YYYY-MM-DD'),
                            TO_DATE('2018-04-08', 'YYYY-MM-DD'));
END;

或者,您可以使用日期文字:

代码语言:javascript
复制
BEGIN
  update_weekly_sales_report(DATE '2018-04-02',
                             DATE '2018-04-08');
END;

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50592959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档