oracle 怎么检查字段是不是存在某值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 怎么检查字段是不是存在某值?相关的知识,希望对你有一定的参考价值。

stuNo 外键
ExamNo 主键
测试时:第一次:proc_addexam('Sgz9022',5,52,42,'kd');可以
第2次:proc_addexam('Sgz9022',7,52,42,'fkd');报违反唯一约束
怎么会呢,主键不同啊,各位帮帮我
CREATE OR REPLACE PROCEDURE proc_addExam (stu_id IN VARCHAR2 ,
ks_id IN INTEGER ,
bs_score IN NUMBER,
js_score IN NUMBER,
kemu IN VARCHAR2)IS
TYPE stu2_cursor IS REF CURSOR;
exam_cursor stu2_cursor;
cx_stu stumarks%ROWTYPE;

BEGIN
OPEN exam_cursor FOR
'SELECT * FROM stumarks FOR UPDATE';
LOOP
FETCH exam_cursor INTO cx_stu ;
EXIT WHEN exam_cursor%NOTFOUND;
IF stu_id IN (cx_stu.stuno) THEN
INSERT INTO stumarks VALUES(ks_id,kemu,stu_id,bs_score,js_score);
END IF;
END LOOP;
IF (SQL%found)THEN
dbms_output.put_line('学生'||cx_stu.stuno||'成绩已添加') ;
ELSIF (SQL%Notfound)THEN
dbms_output.put_line('对不起,该学生不存在');
END IF;
CLOSE exam_cursor;
END proc_addexam;
图片

提示主键冲突。检查办法 ,假设表table1 ,主键 a,b
插入集合为表table2

检查办法是看tabl2中a,b列是否有重复冲突情况。
select count(*),a,b from table2 group by a,b having count(*)>1
如何有返回值说明插入时,a,b会主键冲突。没有返回值可以正常插入。你检查存储过程中的查询结果。看是否存在冲突情况
参考技术A select 字段 from 表
where 字段=值

php如何判断一个字段是不是存在

我想做一个程序,运行时候判断表A里面是否存在字段B,如果不存在就建立一个字段B。 不知道怎么写
(我说的不是字段里的数据,是这个字段名称)
没钱悬赏,各位行行好,帮个忙吧

如果数据库是用mysql的话

在数据库information_schema
表COLUMNS
记录有所有表字段名称的信息。

例如
SELECT * FROM `COLUMNS` WHERE TABLE_NAME='表A' AND COLUMN_NAME='字段B'
参考技术A isset() 判断变量是否存在;
empty() 判断变量是否 假,包括 0,false,null 和 空字符串本回答被提问者采纳

以上是关于oracle 怎么检查字段是不是存在某值?的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何检查一个数组内是不是存在指定元素

PHP如何检查一个数组内是不是存在指定元素

如何在oracle中检查对象是不是存在[重复]

php怎么判断字段是不是为空

Oracle - 在删除其他表中的几行之前检查行是不是存在

用于检查文件是不是存在于 Web 服务器上的 Oracle 过程