这个包有什么问题,因为它出错了?
CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS
AS
PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);
END PKG_SHOW_CUST_DETAILS;
CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS
AS
PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE(myArg);
END SHOW_CUST_DETAILS;
END PKG_SHOW_CUST_DETAILS;
/
Run Code Online (Sandbox Code Playgroud)
在编译上面的脚本时,我收到以下错误:
SQL> show errors Errors for PACKAGE PKG_SHOW_CUST_DETAILS: LINE/COL ERROR -------- ----------------------------------------------------------------- 6/1 PLS-00103: Encountered the symbol "CREATE"
包很简单,我无法编译它.我在这个错误消息上搜索了早期的答案,但没有一个能解决我的问题.我一直在为另外2个包收到此错误,无论我做什么,我都会遇到此错误消息.我甚至尝试将所有内容剥离到最小的最小值,如上所示,但错误消息似乎没有消失.BTW我在登录Oracle 11G数据库后在命令行SQL plus会话上执行此操作.是 - SET SERVEROUTPUT ON - 已执行,错误消息与此命令无关.
我错过了什么?
我正在使用Oracle sql开发人员编写一个oracle包,我得到了这个编译错误:
错误(7,1):PLS-00103:遇到符号"CREATE".
create or replace
PACKAGE TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN;
FUNCTION afterPopulate RETURN BOOLEAN;
END TestPackage;
CREATE OR REPLACE PACKAGE BODY TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN AS
BEGIN
DELETE FROM TEST_1;
INSERT INTO TEST_1
SELECT * FROM TEST WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
FUNCTION afterPopulate RETURN BOOLEAN AS
BEGIN
UPDATE TEST SET RESULT="completed" WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS RETURN FALSE;
END;
END;
END TestPackage;
Run Code Online (Sandbox Code Playgroud)
如果我/ …
我是很新的PL/SQL,并且正在使用的Oracle SQL Developer写它使用序列来生成对已有数据的主键的过程中,写入到另一个数据库.
有问题的代码是在NDA下.基本上我有以下内容:
create or replace
PROCEDURE Generate_Data
(
output IN VARCHAR2
)
AS
-- Variables here --
CURSOR myCursor IS
SELECT data1, data2
FROM table;
CREATE SEQUENCE mySequence <-- error on this line
START WITH 0
INCREMENT BY 1;
BEGIN
LOOP
-- snip --
Run Code Online (Sandbox Code Playgroud)
它引发错误PLS-00103,说它遇到以下时遇到符号CREATE:begin,function,package,pragma,procedure,...
我一直在关注这个例子:http: //www.techonthenet.com/oracle/sequences.php
我正在尝试在Oracle中创建一个用户定义的函数,当给定包含日期子字符串的文本参数时,它将返回DATE.我已经尝试了几种写这个方法,似乎都抛出了同样的错误:
CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in IN VARCHAR2(50))
RETURN DATE DETERMINISTIC IS
BEGIN
RETURN(TO_DATE(REGEXP_REPLACE(lm_date_in, '([[:digit:]]{2})[-/.]*([[:digit:]]{2})[-/.]*([[:digit:]]{4})','\3-\1-\2'), 'YYYY-MM-DD'));
END;
Run Code Online (Sandbox Code Playgroud)
错误:
功能lm_date_convert已编译.1/46
PLS-00103:遇到以下其中一项时遇到符号"(")::=.),@%default character符号":="代替"("继续.
欢迎任何关于此的想法,以及一般的UDF写作技巧(以及好的参考资料)!谢谢.
尝试编译时,我收到以下错误
错误(16,8):PLS-00103:遇到以下其中一项时遇到符号"SPROLLUPEXPENSEITEM":: =.(@%;符号":="代替"SPROLLUPEXPENSEITEM"继续.
和
错误(17,15):PLS-00103:当遇到以下情况之一时遇到符号"=":. (*@%= - + </>在是模余数不那么REM <>或=或〜=> = <= <>和或类似的多集||构件SUBMULTISET之间LIKE2样4 likec!
create or replace
TRIGGER tr_ExpenseItem_Rollup
AFTER DELETE OR UPDATE of ExpApprAmt
ON ExpenseItem
FOR EACH ROW
DECLARE
RollupAmt Number;
BlnResult Boolean;
BEGIN
IF DELETING THEN
RollupAmt := -1 * :Old.ExpApprAmt;
End If;
IF UPDATING Then
RollupAmt := :New.ExpApprAmt - :Old.ExpApprAmt;
End IF;
Call spRollUpExpenseItem(:New.ERNo,:New.ECNo,RollupAmt,BlnResult);
If BlnResult := TRUE
--Additional Logic Here
End IF;
END;
Run Code Online (Sandbox Code Playgroud)
我是一名学生而且很新,所以任何帮助都会受到赞赏.
收到与功能相关的以下错误:
'第20行的错误:PLS-00103:遇到以下其中一项时遇到符号"文件结束":end not pragma final instantiable order overriding static member constructor map 0.01秒
CREATE OR REPLACE FUNCTION Function1
RETURN FLOAT
IS
PricePerBug FLOAT,
NumberOfBugs NUMBER,
TotalIncome FLOAT;
BEGIN
SELECT SUM(ProjectValue) INTO TotalIncome FROM tblProject;
SELECT COUNT(idBug) INTO NumberOfBugs FROM tblBug;
PricePerBug := (NumberOfBugs)/(TotalIncome);
RETURN PricePerBug;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No data found, no result to display; exception handled...');
WHEN TOO_MANY_ROWS THEN
RETURN 'Too many rows returned...';
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20015, 'Unknown exception in function Function1.');
END Function1;
/
Run Code Online (Sandbox Code Playgroud)
任何建议赞赏......
我在PL SQL上很新,当我尝试写下面的代码时:
BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here')
END LOOP;
Run Code Online (Sandbox Code Playgroud)
在SQL Developer中执行statment时出现以下错误
当期望是以下一个时遇到符号"文件结束":开始案例声明结束例外以及更多...
我的陈述有什么问题?任何人都可以给我一个提示如何解决这个问题?所有提示我都会很高兴.
我已经在SQL中编写了这个函数,我无法弄清楚为什么,但它继续在异常部分返回错误.我检查了语法,记录了但我没有运气,有人请帮忙吗?
错误返回:
Error on line 83: PLS-00103: Found symbol "EXCEPTION" instead one of the following:
begin case declare end exit for goto if loop mod null pragma raise return select update while with
<<
close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Run Code Online (Sandbox Code Playgroud)
create or replace function InsertPeriodoEvento
(NomePeriodo in varchar,
aInizio in integer,
aFine in integer,
NomeEvento1 in varchar,
g1 in integer,
m1 in integer,
a1 in integer,
NomeEvento2 in varchar,
g2 …Run Code Online (Sandbox Code Playgroud)