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判断是有问题的,语法跟逻辑都不正确。