DECLARE
--***********************************
V_USERID USERSTEST.USERID %TYPE;
V_PWD USERSTEST.PWD %TYPE ;
V_NAME USERSTEST.NAME %TYPE ;
V_AGE USERSTEST.AGE %TYPE ;
V_SEX USERSTEST.SEX %TYPE ;
V_ADDRESS USERSTEST.ADDRESS %TYPE;
V_TEL USERSTEST.TEL %TYPE;
V_TAG CONSTANT NUMBER := 1;
V_TABLECCOUNT NUMBER ;
V_CHANGECOUNT NUMBER ;
--***************
REPEAT_EXCEPTION EXCEPTION;
--***********************************BEGIN
V_USERID := '2005112108';
V_PWD := '9527007';
V_NAME := '曼曼';
V_AGE := '22' ;
V_SEX := '2' ;
V_ADDRESS := '不告诉你' ;
V_TEL := '00000' ;
SELECT COUNT(*) INTO V_TABLECCOUNT FROM USERSTEST ;
INSERT INTO USERSTEST VALUES(V_USERID,V_PWD,V_NAME,V_AGE,V_SEX,V_ADDRESS,V_TEL);
SELECT COUNT(*) INTO V_CHANGECOUNT FROM USERSTEST ;
IF V_CHANGECOUNT > V_CHANGECOUNT THEN
DBMS_OUTPUT.put_line('执行成功');
ELSE IF V_CHANGECOUNT < V_CHANGECOUNT THEN
RAISE REPEAT_EXCEPTION ;
END IF ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('不能将重复的值添加到Userstest表中');
END ;
--***********************************
V_USERID USERSTEST.USERID %TYPE;
V_PWD USERSTEST.PWD %TYPE ;
V_NAME USERSTEST.NAME %TYPE ;
V_AGE USERSTEST.AGE %TYPE ;
V_SEX USERSTEST.SEX %TYPE ;
V_ADDRESS USERSTEST.ADDRESS %TYPE;
V_TEL USERSTEST.TEL %TYPE;
V_TAG CONSTANT NUMBER := 1;
V_TABLECCOUNT NUMBER ;
V_CHANGECOUNT NUMBER ;
--***************
REPEAT_EXCEPTION EXCEPTION;
--***********************************BEGIN
V_USERID := '2005112108';
V_PWD := '9527007';
V_NAME := '曼曼';
V_AGE := '22' ;
V_SEX := '2' ;
V_ADDRESS := '不告诉你' ;
V_TEL := '00000' ;
SELECT COUNT(*) INTO V_TABLECCOUNT FROM USERSTEST ;
INSERT INTO USERSTEST VALUES(V_USERID,V_PWD,V_NAME,V_AGE,V_SEX,V_ADDRESS,V_TEL);
SELECT COUNT(*) INTO V_CHANGECOUNT FROM USERSTEST ;
IF V_CHANGECOUNT > V_CHANGECOUNT THEN
DBMS_OUTPUT.put_line('执行成功');
ELSE IF V_CHANGECOUNT < V_CHANGECOUNT THEN
RAISE REPEAT_EXCEPTION ;
END IF ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('不能将重复的值添加到Userstest表中');
END ;
解决方案 »
- 基础提问: oracle锁表(LOCK TABLE wq IN EXCLUSIVE MODE)后,网线断后,发现表还是一直锁着。。
- windows server 2008 下安装Oracle10g的问题
- 600万条数据的select count(*)问题。
- oracle树形递归的问题!高手帮忙啊!
- oracle 跟 sybase问题(特殊问题)
- 创建表的问题
- 哪里有oracle的ERP試用版下载?高分求!
- 如何在一张表有update在做,没提交前,控制别的select等待!
- 如何移动表空间文件移到另一个分区
- oracle如何在98下安装?
- 为什么这个过程创建不了,哪里错误了???
- 谁能帮我把一SQL的trigger转换成ORACLE的,小弟在此先谢谢了!!!!!!!!!
PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following: begin case declare else elsif end exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
ORA-06550: line 50, column 0:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: end not pragma final instantiable order overriding static 这个是错误原因
在例外中加入以下代码:
when REPEAT_EXCEPTION then
dbms_output.put_line('@#%%%');
when REPEAT_EXCEPTION then
DBMS_OUTPUT.put_line('不能将重复的值添加到Userstest表中');
--***********************************
V_USERID USERSTEST.USERID %TYPE;
V_PWD USERSTEST.PWD %TYPE ;
V_NAME USERSTEST.NAME %TYPE ;
V_AGE USERSTEST.AGE %TYPE ;
V_SEX USERSTEST.SEX %TYPE ;
V_ADDRESS USERSTEST.ADDRESS %TYPE;
V_TEL USERSTEST.TEL %TYPE;
V_TAG CONSTANT NUMBER := 1;
V_TABLECCOUNT NUMBER ;
V_CHANGECOUNT NUMBER ;
--***************
REPEAT_EXCEPTION EXCEPTION;
--***********************************BEGIN
V_USERID := '2005112108';
V_PWD := '9527007';
V_NAME := '曼曼';
V_AGE := '22' ;
V_SEX := '2' ;
V_ADDRESS := '不告诉你' ;
V_TEL := '00000' ;
SELECT COUNT(*) INTO V_TABLECCOUNT FROM USERSTEST ;
INSERT INTO USERSTEST VALUES(V_USERID,V_PWD,V_NAME,V_AGE,V_SEX,V_ADDRESS,V_TEL);
SELECT COUNT(*) INTO V_CHANGECOUNT FROM USERSTEST ;
IF V_CHANGECOUNT > V_TABLECCOUNT THEN
DBMS_OUTPUT.put_line('执行成功');
ELSE IF V_CHANGECOUNT < V_TABLECCOUNT THEN
RAISE REPEAT_EXCEPTION ;
END IF ;
EXCEPTION
WHEN REPEAT_EXCEPTION THEN
DBMS_OUTPUT.put_line('不能将重复的值添加到Userstest表中'); END ;