我要在Oracle SQL Developer中针对Oracle 10g服务器运行以下SQL:
WITH openedXml AS (
SELECT extractvalue(column_value, '/theRow/First') FIRST,
extractvalue(column_value, '/theRow/Last') LAST,
to_number(extractvalue(column_value, '/theRow/Age')) Age
FROM TABLE(XMLSequence(XMLTYPE('
<theRange>
<theRow><First>Bob</First><Last>Smith</Last><Age>30</Age></theRow>
<theRow><First>Sue</First><Last>Jones</Last><Age>34</Age></theRow>
...
...
...
<theRow><First>Tom</First><Last>Anderson</Last><Age>39</Age></theRow>
<theRow><First>Ali</First><Last>Grady</Last><Age>45</Age></theRow>
</theRange>
').extract('/theRange/theRow')))
)
SELECT *
FROM openedxml
WHERE age BETWEEN 30 AND 35;
当我尝试运行它时,出现以下错误:
Error at Command Line:1 Column:0 Error report: SQL Error: ORA-01704: string literal too long
01704. 00000 - "string literal too long"
*Cause: The string literal is longer than 4000 characters.
*Action: Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.
我的字符串有时会长于4000个字符。关于如何解决这个问题的任何想法吗?
您将需要使用CLOB作为XMLTYPE()的输入,而不是VARCHAR。
使用dbms_lob.loadclobfromfile
从文件中加载xml,或通过将xml分成32000个字符块并附加到CLOB的方式。
DECLARE
xmlClob CLOB;
BEGIN
/* Build Clob here */
WITH openedXml AS (
SELECT extractvalue(column_value, '/theRow/First') FIRST,
extractvalue(column_value, '/theRow/Last') LAST,
to_number(extractvalue(column_value, '/theRow/Age')) Age
FROM TABLE(XMLSequence(XMLTYPE(xmlClob).extract('/theRange/theRow')))
)
SELECT *
FROM openedxml
WHERE age BETWEEN 30 AND 35;
END;
问题内容: 我正在使用大量文本更新BLOB,但出现此错误: 有什么办法解决吗? 文本长度为2670个字符,通过进行了转换,如[我如何在Oracle SQL Developer中编辑BLOB(包含JSON)所述。并且全部在查询中的一行上。 更新: 有问题的BLOB已经包含2686个字符长的文本,比我要插入的文本长。 问题答案: A限制为2000个字节。如果您的数据长于此长度,则需要将其存储在a中,然
问题内容: 为什么在将long分配给min和max的地方得到的int数太大? 问题答案: 默认情况下,java中的所有文字数字均为,范围为 包含在内。 您的文字超出了此范围,因此要进行编译,您需要指出它们是文字(即带有的后缀): 请注意,java同时支持大写和小写,但我建议 不要 使用小写,因为它看起来像: 相同的Java语言规范 如果以ASCII字母L或l(ell)为后缀,则整数文字的类型为lo
问题内容: 我正在使用ckeditor格式化我的内部一些数据 现在,当我尝试使用这种方式发布数据时, 我得到错误 HTTP错误414。请求URL太长。 我在这里遇到错误:http : //iranfairco.com/example/errorLongUrl.aspx 尝试单击该页面左下方的“ 编辑文本” 按钮。 为什么会这样呢?我该如何解决? 问题答案: 根据这个问题,URL的最大实际长度是20
问题内容: 我最近尝试使用sftp访问我的linux机器,在那里我实现了自己的简单外壳。并且我设置了除root用户以外的其他用户默认使用我的shell(通过编辑/ etc / passwd文件)。然后问题出现了,一旦我尝试通过sftp访问,我将收到一条消息:“接收的消息太长:”,我搜索了解决方案,一种解决方案是将该用户的默认shell改回普通的bash shell。我试过了,而且奏效了,问题在于,
我有一个Alfresco(5.2.4)工作流,它在activiti引擎上运行。当用户提交任务并且用户任务块完成时,我收到以下错误: 到目前为止,我发现activiti自动存储在工作流中执行的“步骤”的历史记录,因此它会引发错误。 我想知道是否有一些数据库表定义,我可以寻找搜索超过255个字符总数的列。 如果我不能在用户完成任务时修改javascript代码,有没有办法增加长度? 谢啦 附注:我找到
问题内容: 我有两个MySQL实例。当数据太长时,第一个会在插入时截断字符串。第二个引发错误: 我希望第二个也截断数据。是否有任何MySQL设置来管理此行为? 问题答案: 您可以禁用和。这样可以自动截断插入的字符串。 引用来自MySQL Documantation。 严格模式控制MySQL如何处理数据更改语句(例如INSERT或UPDATE)中的无效或缺失值。值可能由于多种原因而无效。例如,它可能