0
我想创建一个接受用户的不同值并将它们插入到数据库中的脚本。对于其中两个值HName和SubName,我想使用这些来搜索数据库中的相应代码,然后将数据插入到数据库中。当我用一个变量做了它时,我得到了这个在不同的脚本中工作,但我无法使它与两个一起工作。我得到以下错误:SQL脚本中的变量
Enter a line number: 1
Enter a description for the item: 5 lbs
Enter an amount for the item: 30.49
Enter a Head category for the item: Grocery
old 13: WHERE Name = '&HName';
new 13: WHERE Name = 'Grocery';
old 22: WHERE Name = '&SubName'
new 22: WHERE Name = 'Meat'
old 28: VALUES (&ExpNum, &LineNum, '&Descr', &Amt, HCode, SCode);
new 28: VALUES ( 1, 1, '5 lbs', 30.49, HCode, SCode);
ACCEPT SubName PROMPT 'Enter a Sub Head category for the item: ';
*
ERROR at line 17:
ORA-06550: line 17, column 9:
PLS-00103: Encountered the symbol "SUBNAME" when expecting one of the
following:
:= . (@ % ;
我想这分裂成两个独立的DECLARE,开始,结束块,但因为我不能在第二次访问的第一个变量,然后我仍然得到其即时猜测是错误的一。以下是我的脚本,如果有人可以请给任何帮助/建议/提示谢谢。
ACCEPT ExpNum NUMBER PROMPT 'Enter an expense number: ';
SELECT *
FROM EXPDET
WHERE ExpNum = &ExpNum;
ACCEPT LineNum NUMBER PROMPT 'Enter a line number: ';
ACCEPT Descr PROMPT 'Enter a description for the item: ';
ACCEPT Amt PROMPT 'Enter an amount for the item: ';
ACCEPT HName PROMPT 'Enter a Head category for the item: ';
DECLARE
HeadCode NUMBER;
HCode NUMBER;
SubCode NUMBER;
SCode NUMBER;
BEGIN
SELECT Code
INTO HeadCode
FROM HEAD
WHERE Name = '&HName';
HCode := HeadCode;
ACCEPT SubName PROMPT 'Enter a Sub Head category for the item: ';
SELECT SubCode
INTO SubCode
FROM SUBHEAD
WHERE Name = '&SubName'
AND HCode = HCode;
SCode := SubCode;
INSERT INTO EXPDET
VALUES (&ExpNum, &LineNum, '&Descr', &Amt, HCode, SCode);
END;
/
我想通了,如何解决它。我在想这个错,但是谢谢你。在运行脚本后,它说PL/SQL过程已成功完成,但如果我退出我的数据库并返回,我刚刚添加的记录被删除。你知道为什么发生这种情况吗? – Stc5097
添加提交; INSERT语句后的命令。 –