pl/sql函数和过程
Posted
技术标签:
【中文标题】pl/sql函数和过程【英文标题】:Pl/sql function and procedure 【发布时间】:2019-01-31 17:01:55 【问题描述】:我们需要 INSERT 或 UPDATE 表的数据 advisor_skill ,创建 需要的功能、程序……接受顾问 ID、技能 ID 和 任务的认证状态。该程序应该是用户友好的 足以处理所有可能的错误,例如顾问 ID、技能 ID 存在或认证状态不同于“Y”、“N”。 确保显示: 顾问姓氏、名字、技能描述和确认 执行 DML(提示:不要忘记在过程中添加 COMMIT)
CREATE OR replace PROCEDURE nw (p_c_id NUMBER,
p_s_id NUMBER,
p_certification VARCHAR2)
AS
v_c_id NUMBER := p_c_id;
v_s_id NUMBER := p_s_id;
v_certification VARCHAR2(20);
flag NUMBER(3);
BEGIN
SELECT count(*)
INTO flag
FROM consultant_skill
WHERE c_id = v_c_id
AND skill_id = v_s_id;
dbms_output.Put_line (flag);
IF flag > 0 THEN
UPDATE consultant_skill
SET skill_id = p_s_id,
certification = p_certification
WHERE c_id = v_c_id;
ELSE
dbms_output.Put_line ('bye bye');
END IF;
END;
/
卡在更新本身..尚未尝试在 else 块中插入..首先尝试更新部分..不知道它是否写入
但在编译 samd 时,它显示 ora 00001: 违反唯一约束
【问题讨论】:
您好,欢迎来到 SO。请花一些时间阅读tour,并发布minimal reproducible example。你的问题太笼统了。这里的人们希望看到对这个问题付出一定程度的努力。 SO 不是代码编写服务。谢谢。 嗨,我想帮助身体不适的人.. 我试过这样做.. 虽然我不是程序员 我可以分享我尝试过的写作 那么请编辑问题并插入代码,具体问题是什么。谢谢 已编辑,续后。经过两天的努力,我能够纠正此代码.. bt m 无法修复 updaye 查询.. 显示一些 ora 0001 错误 【参考方案1】:表中的列组合存在唯一键约束。 更新会导致表中多于 1 条记录在此列组合中具有相同的值。 确保确保列组合的唯一性,不仅在插入行时,而且在更新现有行时...
【讨论】:
以上是关于pl/sql函数和过程的主要内容,如果未能解决你的问题,请参考以下文章