以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  ORACLE 表的读取  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=110906)

--  作者:lake163
--  发布时间:2017/12/12 11:17:00
--  ORACLE 表的读取
有一ORACLE数据源,通过Connections的  GetTableNames 属性获取的表名称为如下格式:


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


直接通过获取的表名称, 如"HZZSK"."RS_SUB_XL",并不能访问该表,去掉双引号仍然如此。

请问如何处理?

[此贴子已经被作者于2017/12/12 11:22:47编辑过]

--  作者:有点甜
--  发布时间:2017/12/12 11:22:00
--  

执行sql语句也不行,比如

 

select * from "HZZSK"."RS_SUB_XL"

 

select * from HZZSK.RS_SUB_XL

 

http://www.foxtable.com/webhelp/scr/1484.htm

 


--  作者:lake163
--  发布时间:2017/12/12 11:26:00
--  
执行SQL语句都可以调出数据
--  作者:有点甜
--  发布时间:2017/12/12 11:27:00
--  
 你说直接调用怎么调用的?如果你没有加入表,怎么可以直接调用?
--  作者:lake163
--  发布时间:2017/12/12 13:15:00
--  
解决了,在生成查询表时,还需要先指定数据源。
--  作者:lake163
--  发布时间:2017/12/12 13:41:00
--  
再请问:用下列代码想将ORCL数据源中所有的表的列取出来,填到一个表中。
一是感觉到有点复杂,有没有简单的方法;
二是运行中途会出现错误。
(下面的代码中,有SEL的地方因系统限制,删除了若干字符)
Dim lst As List(Of String)
lst = Connections("orcl").GetTableNames
For Each nm As String In lst
       nm = nm.Replace("""","")
        Dim q As new QueryBuilder
        q.TableName = "临时表"
        q.Sel????= "Sel??? * From { " & nm & "}"
        q.C
        q.Build
        For Each dc As DataCol In DataTables("临时表").DataCols
            Dim dr As DataRow = DataTables("ORCLTABLE").AddNew
            dr("TABLE") = nm
            dr("COLName") = dc.name
        Next
 Next
[此贴子已经被作者于2017/12/12 13:52:02编辑过]

--  作者:有点甜
--  发布时间:2017/12/12 14:19:00
--  

报什么错?请截图说明

 

Dim lst As List(Of String)
lst = Connections("orcl").GetTableNames
For Each nm As String In lst
    nm = nm.Replace("""","")
    Dim q As new QueryBuilder
    q.TableName = "临时表"
    q.SelectString = "select * From " & nm & " where 1=2"
    q.ConnectionName = "orcl"
    q.Build
    For Each dc As DataCol In DataTables("临时表").DataCols
        Dim dr As DataRow = DataTables("ORCLTABLE").AddNew
        dr("TABLE") = nm
        dr("COLName") = dc.name
    Next
Next


--  作者:lake163
--  发布时间:2017/12/12 15:42:00
--  

加了   where 1=2 后,没有问题了。
请问这是什么意思啊?

--  作者:有点甜
--  发布时间:2017/12/12 15:44:00
--  
 where 1=2 的意思是,不加载数据。
--  作者:桃花笑
--  发布时间:2018/4/13 10:56:00
--  
 请问,你连接oracle数据库吗,求教成功连接。