DBA_MVIEWS:ORA-00932:数据类型不一致:预期的-得到长

时间:2018-12-03 17:40:49

标签: oracle oracle12c long-integer clob

我想以简单的TEXT来查看DBA_MVIEWS表的“ QUERY”列。

如果我执行以下语句:

select to_lob(query) from dba_mviews;

我有错误:

ORA-00932: inconsistent datatypes: expected - got LONG

与此相反,我没有任何错误:

select query from dba_mviews;

但是我在DBVisualizer中获得了CLOB结果。

我正在使用:

  • Oracle Database 12c企业版12.1.0.2.0版-64位生产
  • 产品:DbVisualizer Pro 10.0.15 [Build#2861]
  • 操作系统:Mac OS X
  • 操作系统版本:10.14.1
  • OS Arch:x86_64
  • Java版本:1.8.0_172

这是怎么回事?

1 个答案:

答案 0 :(得分:1)

From the Oracle documentation(添加了重点):

  

HtmlWeb htmlWeb = new HtmlWeb() { AutoDetectEncoding = false, OverrideEncoding = Encoding.UTF8 }; htmlWeb.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"; HtmlAgilityPack.HtmlDocument document = htmlWeb.Load("http://woohay.com/xem-phim/anh-2018-11458"); String link_film = document.DocumentNode.SelectSingleNode("//div[@class='jw-media jw-reset']/video").Attributes["src"].Value; Movie_module.FrmVLC frmVLC = new Movie_module.FrmVLC(link_film); frmVLC.StartPosition = FormStartPosition.CenterScreen; frmVLC.btn_down.Visible = true; frmVLC.Show(); 将列plot(all_post_visit$log_visit ~ all_post_visit$log_post, las = 1, type="p", ylab = "Annual Site Visitation", xlab = "Annual Panaromio Posts", main = "") abline(lm(log_visit ~ log_post, data=all_post_visit), col = 'red') points(a3$log_visit ~ a3$log_post, col = 'black', pch=19) 中的TO_LOBLONG值转换为LONG RAW值。您只能将此功能应用于long_columnLOB列,,并且只能应用于LONG语句的子查询的选择列表中。

因此,您无法像尝试那样在简单的查询中使用它。而且,创建一个表以将查询字符串插入其中可能对您不是很有帮助或实际。

处理LONG RAW值通常有点麻烦。您可以在PL / SQL块中将它们转换为CLOB,例如:

INSERT

...但是,即使您创建了返回管道式CLOB的函数,这在这里也可能不是很有用。

DBVisualizer docs说:

  

由于二进制/ BLOB和CLOB数据的性质,只能完全修改这些类型的单元格并在单元格编辑器中查看。 (在“表单编辑器”中部分支持查看图像数据并从文件加载。)

     

在网格中,默认情况下,二进制/ BLOB和CLOB数据由图标和值的大小表示。您可以在“工具属性”对话框的“常规”选项卡下的“网格/二进制/ BLOB和CLOB数据”类别中选择另一种演示格式。按值选择会导致性能下降,并且内存消耗会急剧增加。

这不是我使用过的工具,但听起来像是在处理和显示long值,就像已经使用CLOB一样,所以希望它仍然适用。