【发布时间】:2020-07-20 07:13:31
【问题描述】:
我需要创建一个在表格中搜索电子邮件的过程,如果它不存在,该过程会使用该电子邮件创建一条新记录。
类似这样的:
CREATE PROCEDURE check_email (in @email varchar2(99)) AS
BEGIN
IF SELECT email FROM user u WHERE u.email:=email
dbms_output.put_line('This email exists');
ELSE
BEGIN
INSERT INTO user (id, name, surname, city, address, age, email) VALUES (id_user.nextval,'David','Alcatraz','Sevilla', 'Avd miguel de unamuno', 23, email || '@gmail.com')
END
【问题讨论】:
-
您可以先查询 SELECT count(1) into v_count FROM user u WHERE u.email:=email 如果 v_count > 0 那么 dbms_output.put_line('This email exists'); else 现有代码
-
这里有什么问题?你很清楚你的要求,是什么阻止你这样做?您能谈谈您面临的问题吗?
-
每个
begin都需要一个end,每个if都需要一个end if。@字符为数据库链接保留。email表中的每一行肯定都有email = email。
标签: oracle if-statement stored-procedures plsql