PLSQL两个表对比的问题

2025-04-10 20:06:27
推荐回答(1个)
回答1:

for循环的部分改成如下:

--从两表中name列中最短的字段开始递减循环
FOR I IN REVERSE 0..LEAST(LENGTH(C_A.ANAME),LENGTH(C_B.BNAME)) LOOP
   --如果存在第一个相等的值,则写入C表并退出,进行下一次比较
   IF SUBSTR(C_A.ANAME,0,I) = SUBSTR(C_B.BNAME,0,I) THEN
      INSERT INTO C VALUES (C_A.ANO,C_A.ANAME,C_B.BNO,C_B.BNAME,I);
      COMMIT;
      EXIT;
   END IF;
END LOOP;

代码是根据我上次写的改的, 你再根据你的表结构改下。

你的IF判断是有问题的,语法跟逻辑都不正确。