SELECT DISTINCT D.HELP_TITLE AS MAIN_HELP_TITLE
, C.HELP_TITLE AS TOPIC_HELP_TITLE
, C.HELP_CYPHER
, C.HELP_VAR
, C.HELP_PCS
, C.CONTEXT
FROM scmssa.A_PACK_ITEM_02 A
, scmssa.A_HELP_KEY_01 B
, scmssa.A_HELP_TITLE_01 C
, scmssa.A_HELP_TITLE_01 D
WHERE A.PACK_CYPHER = 'NE6A'
AND A.PACK_VAR = 'AA'
AND A.PACK_PCS = '04'
AND B.ATOM_LANGUAGE = 'EN'
AND B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
AND C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
AND D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
ORDER BY 1,2; 这段代码中 C表和D表是同一张表,所以对段命令的select取法有点不太看明白
请大家帮我看看我的理解对不对
是不是
1)A表中取出同时满足
A.PACK_CYPHER = 'NE6A'
AND A.PACK_VAR = 'AA'
AND A.PACK_PCS = '04'
条件的record,当作一张临时子表A12)B表中取出同时满足
B.ATOM_LANGUAGE = 'EN'
AND B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
条件的record,其中A.ITEM_CYPHER,A.ITEM_VAR,A.ITEM_PCS都取自子表A1,然后当作临时子表B13)C表中取出同时满足
C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
条件的record,其中,B.ATOM_LANGUAGE,B.HELP_CYPHER,B.HELP_VAR,B.HELP_PCS,B.CONTEXT都取自子表B1,然后当作临时子表C13)D表中取出同时满足
D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
条件的record,我的问题是,因为
B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
那么
C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
和
D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
的取法其实是等价的吗?
还是有什么差别?还有D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
这句话可以用其他形式改写或者能不能去掉这句
然后在select的结果中添加
SELECT DISTINCT D.HELP_TITLE AS MAIN_HELP_TITLE
, C.HELP_TITLE AS TOPIC_HELP_TITLE
, C.HELP_CYPHER
, C.HELP_VAR
, C.HELP_PCS
, C.CONTEXT
, D.CONTEXT
, A.ITEM_CYPHER
, A.ITEM_VAR
在结果中,再次筛选 D.CONTEXT= A.ITEM_CYPHER+A.ITEM_VAR的record我现在碰到的问题的是在VB下用createsnapshot通过OTG10 读取这段select,但是D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
这句加上后就出错,如果不加就没问题
而且在OTG8中用createsnapshot读取就完全正常
不知道为什么
请各位高手不吝赐教
多谢
, C.HELP_TITLE AS TOPIC_HELP_TITLE
, C.HELP_CYPHER
, C.HELP_VAR
, C.HELP_PCS
, C.CONTEXT
FROM scmssa.A_PACK_ITEM_02 A
, scmssa.A_HELP_KEY_01 B
, scmssa.A_HELP_TITLE_01 C
, scmssa.A_HELP_TITLE_01 D
WHERE A.PACK_CYPHER = 'NE6A'
AND A.PACK_VAR = 'AA'
AND A.PACK_PCS = '04'
AND B.ATOM_LANGUAGE = 'EN'
AND B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
AND C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
AND D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
ORDER BY 1,2; 这段代码中 C表和D表是同一张表,所以对段命令的select取法有点不太看明白
请大家帮我看看我的理解对不对
是不是
1)A表中取出同时满足
A.PACK_CYPHER = 'NE6A'
AND A.PACK_VAR = 'AA'
AND A.PACK_PCS = '04'
条件的record,当作一张临时子表A12)B表中取出同时满足
B.ATOM_LANGUAGE = 'EN'
AND B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
条件的record,其中A.ITEM_CYPHER,A.ITEM_VAR,A.ITEM_PCS都取自子表A1,然后当作临时子表B13)C表中取出同时满足
C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
条件的record,其中,B.ATOM_LANGUAGE,B.HELP_CYPHER,B.HELP_VAR,B.HELP_PCS,B.CONTEXT都取自子表B1,然后当作临时子表C13)D表中取出同时满足
D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
条件的record,我的问题是,因为
B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
那么
C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
和
D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
的取法其实是等价的吗?
还是有什么差别?还有D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
这句话可以用其他形式改写或者能不能去掉这句
然后在select的结果中添加
SELECT DISTINCT D.HELP_TITLE AS MAIN_HELP_TITLE
, C.HELP_TITLE AS TOPIC_HELP_TITLE
, C.HELP_CYPHER
, C.HELP_VAR
, C.HELP_PCS
, C.CONTEXT
, D.CONTEXT
, A.ITEM_CYPHER
, A.ITEM_VAR
在结果中,再次筛选 D.CONTEXT= A.ITEM_CYPHER+A.ITEM_VAR的record我现在碰到的问题的是在VB下用createsnapshot通过OTG10 读取这段select,但是D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR
这句加上后就出错,如果不加就没问题
而且在OTG8中用createsnapshot读取就完全正常
不知道为什么
请各位高手不吝赐教
多谢
Query = Query & " AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR"我觉得问题应该不是VB本身语法错
因为同样的数据库,我用同样的VB程序通过OTG8连接是好用的
但是通过OTG10连接却出错,所以我才往oracle本身的问题方面考虑另外,这段通过SQL*PLUS运行也是好的
所以我在想,是不是有可能是C表D表相同会有问题
或者用其他方式改写D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR能不能行?呵呵,说到底还是对oracle语法不熟
这段select看得模模糊糊的
AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR --改成:
AND D.CONTEXT LIKE '%'||A.ITEM_CYPHER||'%'
AND D.CONTEXT LIKE '%'||A.ITEM_VAR||'%'
在OTG8中用createsnapshot读取就完全正常
=====================================================================
放到 VB 板块更合适。呵呵
VB版我放过了,没啥反应
我后来详细的查了下,发现是D.CONTEXT 的问题,好像有了这个column就会报错
我只能把代码改为下文所示的样子,多加了A.ITEM_CYPHER;A.ITEM_VAR;D.CONTEXT
这三个column
然后在这次query的结果中,再取
D.CONTEXT = A.ITEM_CYPHER+A.ITEM_VAR的结果
不过始终没有想通,为啥D.CONTEXT就是不能用
而我在oracle8里面就一切ok
不知道是不是在这两个版本里面D.CONTEXT的属性有什么奥妙SELECT DISTINCT D.HELP_TITLE AS MAIN_HELP_TITLE
, C.HELP_TITLE AS TOPIC_HELP_TITLE
, C.HELP_CYPHER
, C.HELP_VAR
, C.HELP_PCS
, C.CONTEXT
, A.ITEM_CYPHER ------------------> new added
, A.ITEM_VAR ------------------> new added
, D.CONTEXT As TEMP_CONTEXT -----------------> new added and I have to rename the column value, otherwise the D.CONTEXT is still not work.
FROM scmssa.A_PACK_ITEM_02 A
, scmssa.A_HELP_KEY_01 B
, scmssa.A_HELP_TITLE_01 C
, scmssa.A_HELP_TITLE_01 D
WHERE A.PACK_CYPHER = 'NE6A'
AND A.PACK_VAR = 'AA'
AND A.PACK_PCS = '04'
AND B.ATOM_LANGUAGE = 'EN'
AND B.HELP_CYPHER = A.ITEM_CYPHER
AND B.HELP_VAR = A.ITEM_VAR
AND B.HELP_PCS = A.ITEM_PCS
AND C.ATOM_LANGUAGE = B.ATOM_LANGUAGE
AND C.HELP_CYPHER = B.HELP_CYPHER
AND C.HELP_VAR = B.HELP_VAR
AND C.HELP_PCS = B.HELP_PCS
AND C.CONTEXT = B.CONTEXT
AND D.HELP_CYPHER = A.ITEM_CYPHER
AND D.HELP_VAR = A.ITEM_VAR
AND D.HELP_PCS = A.ITEM_PCS
AND D.ATOM_LANGUAGE = 'EN'
//AND D.CONTEXT = A.ITEM_CYPHER || A.ITEM_VAR -------------------->delete this condition
ORDER BY 1,2;