我正在尝试创建这个存储过程,它应该将客户编号和电子邮件地址作为输入。然后更新该客户的电子邮件地址。如果新的电子邮件地址与旧的相同,则应提出异常。
CREATE OR REPLACE PROCEDURE UpdateEmail
(CUSTOMERID IN CUSTOMER.CUSTOMERNO%TYPE,
N_EMAIL IN CUSTOMER.EMAIL%TYPE)
IS
DECLARE
e_same EXCEPTION;
V_ROWCOUNT NUMBER;
BEGIN
SELECT COUNT(EMAIL)
INTO V_ROWCOUNT
FROM CUSTOMER@FIT5148B
WHERE CUSTOMER.EMAIL = N_EMAIL
AND CUSTOMER.CUSTOMERNO = CUSTOMERID;
IF V_ROWCOUNT > 0
THEN RAISE e_same;
ELSE
UPDATE CUSTOMER
SET EMAIL = N_EMAIL
WHERE CUSTOMER.CUSTOMERNO = CUSTOMERID;
END IF;
EXCEPTION
WHEN e_same THEN dbms_output.put_line ('email address exist');
END;
/
但它是抛出错误。不确定我是否做得对。我正在使用最新的OracleSQLDeveloper。
错误(6,1): PLS-00103:在需要以下内容之一时遇到符号“DECLARE ”: begin function pragma procedure subtype当前光标删除存在于外部语言之前符号“begin”已替换为“DECLARE”以继续。< br >错误(28,4): PLS-00103:在需要以下内容之一时遇到符号“文件结尾”:(begin case declare end exception exit for goto if loop mod null pragma raise return select update while with
删除DECLARE
。
不应在过程中使用“声明
”。如果您正在编写PLSQL块,那么只有您应该使用声明
。不在实际的过程正文中。
问题内容: 我在MySQL数据库中存储了大约一百个例程,其中大多数都以“ root”作为定义者。 我有另一个名为“ abc”的mysql帐户,如何将所有例程的定义程序更改为“ abc”。 如果我只能以“ abc”用户而不是“ root”用户身份访问MySQL服务器,是否可以这样做? 问题答案: 据我所知:您将必须获取所有脚本的脚本文本并将其拖放/重新创建为abc。除非abc有权删除/创建过程,否则
问题内容: 在Oracle DB中: 我有以下存储过程: 类型IDS_TABLE是: 如何在Java中调用getInfo? 问题答案: 手动设置Oracle SQL对象和java对象之间的链接不是一件容易的事。特别是,从用户定义对象的数组(或嵌套表)到Java到Oracle的传递比标准数据类型的数组更复杂。换句话说,调用带有签名的过程会更容易: 而不是签名为: 你可以在过程周围编写包装器,以将
本文向大家介绍Oracle存储过程和自定义函数详解,包括了Oracle存储过程和自定义函数详解的使用技巧和注意事项,需要的朋友参考一下 概述 PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 举个例子: 一旦创建了改程序并将其存储
根据JAVA 8提供的新特性,可选类是防止空指针异常的一种方法。如果输出为null,我们可以使用orelsethow方法()引发异常。我想知道如何使用它抛出用户定义的异常
我有一个简单的存储过程,在我创建的表上执行。当我使用硬编码参数单独执行update语句时,它可以工作,但过程在执行时不会更新。它返回一个“命令已成功完成”,但不影响任何行。我检查了数据,数据也没有变化。
功能介绍 获取本APP的新用户自定义留存报告相关数据 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/app/getDataByKey 请求参数 此处仅列本接口特有参数,公共参数请参考报告级API说明 获取表格数据 参数名 参数类型 是否必须 描述 method string 是 retaineduser/a flag string 是 newcust