我尝试在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语句”
我的查询有什么问题吗? 请帮助我。感谢的.....
答案 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,