oracle查询查看数据类型列表

时间:2011-12-27 19:44:57

标签: sql vb.net oracle datagridview

我尝试在datagridview vb.net中显示我的表数据类型。以下是示例代码:

        oradb = "Data Source=(DESCRIPTION=" _
      + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & txtServer1.Text & ")(PORT=" & port1.Value & ")))" _
      + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" & txtSID.Text & ")));" _
      + "User Id=" & txtUsername1.Text & ";" _
      + "Password=" & txtPassword1.Text
        Dim connOracle As New OracleConnection(oradb)

        Try
            connOracle.Open()
            connOracle.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
        Finally
        End Try

        SQL = "desc hr.employees"
        myCommand1.Connection = connOracle
        myCommand1.CommandText = SQL
        myAdapter1.SelectCommand = myCommand1
        myAdapter1.Fill(myTablePreview)
        DataGridView1.DataSource = myTablePreview

我尝试使用用户名“system”登录。当我运行此代码时,出现错误消息“ORA-00900:无效的SQL语句”

我的查询有什么问题吗? 请帮助我。感谢的.....

2 个答案:

答案 0 :(得分:4)

DESC是一个SQL PLus命令。

您可能想要进行实际查询,例如

select * 
from all_tab_cols
where table_name = 'EMP'

答案 1 :(得分:2)

DESC(DESCRIBE)是一个SQL * Plus命令,而不是SQL动词。 SQL * Plus是SQL的前端工具,因此它添加了一些自己的命令,这就是其中之一。使用OLE DB时必须坚持使用SQL。

如果您希望在客户端程序中使用此数据,则可能需要尝试以下操作:

select * 
from all_tab_columns 
where table_name = '<your table name>'

或者像这样:

Select COLUMN_NAME 
from user_tab_columns 
where table_name='EMP'

这是纯(Oracle)SQL,您可以在SQL * Plus中进行实验,直到获得所需的一组列。

Devian Yudha,