问题描述
你好!!
我是PL SQL的新手,所以我被赋予了一个任务,通过连接两个表来开发一个过程,程序应该给出给定日期范围内的发票报告。我的程序如下。
创建表Esheet (SH_DATE date,
SHEET_NUMBER VARCHAR2 (5),
E.SHEETERS_PAY_CARD VARCHAR2 (16),
E.SHEETERS_BRANCH_NAME VARCHAR2(3),
E.SHEETERS_ACCOUNT_NUMBER VARCHAR2(11)
)
插入到Esheet值 (12/12/2012,23756,975,12345678987)
插入到Esheet值 (11/12/2012,23456,675,12045078087)
插入到Esheet值 (10/12/2012,23352,475,10305675989)
创建或替换包主体APTRN_PKG为
程序L_APTRN (
BA_SOURCE VARCHAR2默认为NULL,
BA_START_DATE VARCHAR2默认为NULL,
BA_END_DATE VARCHAR2默认为NULL,
BA_SHHET_NUMBER VARCHAR2默认为NULL,
BA_SHEETERS_PAY_CARD VARCHAR2默认为NULL,
BA_SHEETERS_BRANCH_NAME VARCHAR2默认为NULL,
BA_SHEETERS_BANK_ACC VARCHAR2默认为空
)
开始
选择
E.SH_DATE,
E、页数,
E.SHEETERS_PAY_CARD,
E.Sheeters_ 分支 _ 名称,
E.SHEETERS_ACCOUNT_NUMBER
从Esheet E
其中BA_START_DATE = & & E.SH_DATE和
BA_END_DATE = & & E.SH_DATE
结束APTRN;
我是PL SQL的新手,所以我被赋予了一个任务,通过连接两个表来开发一个过程,程序应该给出给定日期范围内的发票报告。我的程序如下。
创建表Esheet (SH_DATE date,
SHEET_NUMBER VARCHAR2 (5),
E.SHEETERS_PAY_CARD VARCHAR2 (16),
E.SHEETERS_BRANCH_NAME VARCHAR2(3),
E.SHEETERS_ACCOUNT_NUMBER VARCHAR2(11)
)
插入到Esheet值 (12/12/2012,23756,975,12345678987)
插入到Esheet值 (11/12/2012,23456,675,12045078087)
插入到Esheet值 (10/12/2012,23352,475,10305675989)
创建或替换包主体APTRN_PKG为
程序L_APTRN (
BA_SOURCE VARCHAR2默认为NULL,
BA_START_DATE VARCHAR2默认为NULL,
BA_END_DATE VARCHAR2默认为NULL,
BA_SHHET_NUMBER VARCHAR2默认为NULL,
BA_SHEETERS_PAY_CARD VARCHAR2默认为NULL,
BA_SHEETERS_BRANCH_NAME VARCHAR2默认为NULL,
BA_SHEETERS_BANK_ACC VARCHAR2默认为空
)
开始
选择
E.SH_DATE,
E、页数,
E.SHEETERS_PAY_CARD,
E.Sheeters_ 分支 _ 名称,
E.SHEETERS_ACCOUNT_NUMBER
从Esheet E
其中BA_START_DATE = & & E.SH_DATE和
BA_END_DATE = & & E.SH_DATE
结束APTRN;
专家解答
因此...
-您的create table语句不起作用
所以我们解决了这个问题,然后你的插入就不起作用了
我是说...来吧...当然,您可以给我们更多的东西:-(
无论如何,在 * guess * 中,您可能想做这样的事情?
-您的create table语句不起作用
SQL> create table Esheet (SH_DATE date, 2 SHEET_NUMBER VARCHAR2 (5), 3 E.SHEETERS_PAY_CARD VARCHAR2 (16), 4 E.SHEETERS_BRANCH_NAME VARCHAR2(3), 5 E.SHEETERS_ACCOUNT_NUMBER VARCHAR2(11) 6 ); E.SHEETERS_PAY_CARD VARCHAR2 (16), * ERROR at line 3: ORA-01748: only simple column names allowed here
所以我们解决了这个问题,然后你的插入就不起作用了
SQL> create table Esheet (SH_DATE date,
2 SHEET_NUMBER VARCHAR2 (5),
3 SHEETERS_PAY_CARD VARCHAR2 (16),
4 SHEETERS_BRANCH_NAME VARCHAR2(3),
5 SHEETERS_ACCOUNT_NUMBER VARCHAR2(11)
6 );
Table created.
SQL> insert into Esheet values(12/12/2012,23756,975,12345678987);
insert into Esheet values(12/12/2012,23756,975,12345678987)
*
ERROR at line 1:
ORA-00947: not enough values
SQL> insert into Esheet values(11/12/2012,23456,675,12045078087);
insert into Esheet values(11/12/2012,23456,675,12045078087)
*
ERROR at line 1:
ORA-00947: not enough values
SQL> insert into Esheet values(10/12/2012,23352,475,10305675989);
insert into Esheet values(10/12/2012,23352,475,10305675989)
*
ERROR at line 1:
ORA-00947: not enough values
我是说...来吧...当然,您可以给我们更多的东西:-(
无论如何,在 * guess * 中,您可能想做这样的事情?
create or replace
procedure aptrn(
ba_source varchar2 default null,
ba_start_date varchar2 default null,
ba_end_date varchar2 default null,
ba_shhet_number varchar2 default null,
ba_sheeters_pay_card varchar2 default null,
ba_sheeters_branch_name varchar2 default null,
ba_sheeters_bank_acc varchar2 default null
)
begin
for i in (
select
e.sh_date,
e.sheet_number,
e.sheeters_pay_card,
e.sheeters_branch_name,
e.sheeters_account_number
from esheet e
where sh_date between ba_start_date and ba_end_date
) loop
-- do something with each row, eg
dbms_output.put_line(i.sheet_number);
end loop;
end;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




