Я пытаюсь заменить окончание любого электронного письма конкретным доменом электронной почты. В процедуру будут переданы две строки: первая - это исходное доменное имя, которое необходимо заменить; и Во-вторых, новое доменное имя, которое будет заменять исходное (в указанном порядке). Например, если в процедуру передаются строки «sadme.com» и «happyme.com», каждое электронное письмо в базе данных с доменным именем «sadme.com» будет изменено на «happyme.com» в качестве их доменное имя
Примеры:
Before After
-------------------------- ---------------------------
[email protected] [email protected]
[email protected] [email protected]
Это то, что у меня есть, но я получаю сообщение об ошибке
Create Procedure PR_Q3
(P_OldDomain Varchar2,P_NewDomain Varchar2)
As
Cursor C_Domains IS Select Email_Address
From Broker
where Email_Address = '%@'||P_OldDomain;
V_OldDomain Varchar2(50);
Begin
Open C_Domains;
Fetch C_Domains INTO V_OldDomain;
While C_Domains%Found loop
if C_Domains = '%@'||P_OldDomain Then
Update Broker
Set Email_Address = P_NewDomain
Where Email_Address = V_OldDomain;
End if;
Fetch C_Domains into P_NewDomain;
End Loop;
Close C_Domains;
End PR_Q3;
/
Show Errors;
я получаю ошибки:
ОШИБКА ЛИНИИ / ЦВЕТА
2/29 PLS-00103: Обнаружен символ "(" при ожидании одного из следующих событий:
:= . ) , @ % default character
The symbol ":=" was substituted for "(" to continue.
2/61 PLS-00103: Обнаружен символ "(" при ожидании одного из следующих событий:
:= . ) , @ % default character
The symbol ":=" was substituted for "(" to continue.
Также я попытался вынуть varchar2 (50) и просто поставить Varchar2, и он дал мне ошибку:
PLS-00403: expression 'P_NewDomain' cannot be used as an INTO-target of a SELECT/FETCH statement
Спасибо!