CREATE OR REPLACE TRIGGER SCOTT.SET_UPDATE
BEFORE INSERT
ON SCOTT.Table
FOR EACH ROW
DECLARE
JG VARCHAR2(50);
BEGIN
SELECT DIC_XZQH.NAME INTO JG FROM DIC_XZQH WHERE DIC_XZQH.CODE = :NEW.Table_JG_CODE;
:NEW.Table_JG_NAME := JG;
END SET_UPDATE;
/
我是通过字典表 更新Table, 字典表DIC_XZQH 两列 Code Name;
当在字典表里能找到Table里的Table_JG_CODE的时候即:DIC_XZQH.CODE = Table_JG_CODE成立,上面句子执行顺利,
当在Table里的Table_JG_CODE在DIC_XZQH得不到映射的时候,就是没有的时候,触发器提示找不到数据,
这个问题能解决下么? 两个表不能完全映射情况既定,我想的是 能不能找不到的时候就插入空 或什么的?
BEFORE INSERT
ON SCOTT.Table
FOR EACH ROW
DECLARE
JG VARCHAR2(50);
BEGIN
SELECT DIC_XZQH.NAME INTO JG FROM DIC_XZQH WHERE DIC_XZQH.CODE = :NEW.Table_JG_CODE;
:NEW.Table_JG_NAME := JG;
END SET_UPDATE;
/
我是通过字典表 更新Table, 字典表DIC_XZQH 两列 Code Name;
当在字典表里能找到Table里的Table_JG_CODE的时候即:DIC_XZQH.CODE = Table_JG_CODE成立,上面句子执行顺利,
当在Table里的Table_JG_CODE在DIC_XZQH得不到映射的时候,就是没有的时候,触发器提示找不到数据,
这个问题能解决下么? 两个表不能完全映射情况既定,我想的是 能不能找不到的时候就插入空 或什么的?
解决方案 »
- oracle如何实现把一个数据表中的数据复制到备份数据表中
- 两段近似的SQL,执行情况却不大相同?
- 这个sql语句什么意思 高手告诉我一下,谢谢!
- JDBC连ORACLE的驱动问题。。。。。。。
- XP 9I oracleservice<sid> 服务不见了
- decode的结果能直接应用到该SQL的条件中吗?
- 如何把数据库生成的脚本".sql"文件通过sql plus 导入到oracle指定的用户下
- 在存储过程中创建视图的问题,怎么写啊???????
- 求一条关于伪列level的SQL语句!!!
- 给小弟推荐点关于存储过程的网络教程
- 从Oracle数据库的某一表中得到成绩最好的前10位
- varchar2(10)和varchar2(4000)有什么区别
BEFORE INSERT
ON SCOTT.Table
FOR EACH ROW
DECLARE
JG VARCHAR2(50);
l_count pls_integer;
BEGIN
select count(*) into l_count from DIC_XZQH where DIC_XZQH.CODE = :NEW.Table_JG_CODE;
if nvl(l_count,0)<>0 then
SELECT DIC_XZQH.NAME INTO JG FROM DIC_XZQH WHERE DIC_XZQH.CODE = :NEW.Table_JG_CODE;
:NEW.Table_JG_NAME := JG;
end if;
END SET_UPDATE;
CREATE OR REPLACE TRIGGER SCOTT.SET_UPDATE
BEFORE INSERT
ON SCOTT.Table
FOR EACH ROW
DECLARE
JG VARCHAR2(50);
BEGIN
SELECT NVL(DIC_XZQH.NAME,' ') INTO JG FROM DIC_XZQH WHERE DIC_XZQH.CODE = :NEW.Table_JG_CODE;
:NEW.Table_JG_NAME := JG;
END SET_UPDATE;
/