Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用游标的Oracle SQL更新_Sql_Oracle_Cursor - Fatal编程技术网

使用游标的Oracle SQL更新

使用游标的Oracle SQL更新,sql,oracle,cursor,Sql,Oracle,Cursor,我有一个关于如何使用光标更新电子邮件域名使用新的电子邮件域名的问题。例如(gmail.com->hotmail.com) 执行过程('gmail.com','hotmail.com') 这是我写的。请帮帮我,谢谢 create procedure PR_Q3 is P_NewEamil varchar2(50); P_Email_Address varchar2(50); exceptionforemail exception; cursor E_info is select Email_Add

我有一个关于如何使用光标更新电子邮件域名使用新的电子邮件域名的问题。例如(gmail.com->hotmail.com)

执行
过程('gmail.com','hotmail.com')

这是我写的。请帮帮我,谢谢

create procedure PR_Q3
is P_NewEamil varchar2(50); P_Email_Address varchar2(50); exceptionforemail exception;
cursor E_info is select Email_Address from Broker where P_Email_Address = Email_Address
for update of Email_Address;
begin 
open E_info;
fetch E_info into P_NewEamil;
while E_info%found loop 
if(P_NewEamil like '%.com') then 
update Broker set Email_Address = P_NewEamil where P_Email_Address = Email_Address;

当光标可以使用以下简单的
update
语句完成时,为什么要使用光标:

UPDATE BROKER
SET
    EMAIL_ADDRESS = REPLACE(P_NEWEAMIL, :OLD_DOMAIN, :NEW_DOMAIN)
WHERE
    REGEXP_LIKE ( P_NEWEAMIL,'.*@'|| :OLD_DOMAIN|| '$' );
请根据您的要求在其中添加更多的
条件


干杯

当光标可以使用以下简单的
update
语句完成时,为什么要使用光标:

UPDATE BROKER
SET
    EMAIL_ADDRESS = REPLACE(P_NEWEAMIL, :OLD_DOMAIN, :NEW_DOMAIN)
WHERE
    REGEXP_LIKE ( P_NEWEAMIL,'.*@'|| :OLD_DOMAIN|| '$' );
请根据您的要求在其中添加更多的
条件


干杯

旧域和新域的绑定变量错误,请用实际名称替换旧域和新域。和删除:alsoit在旧域和新域中存在坏的绑定变量错误,只需用实际名称替换旧域和新域即可。并删除:也