span8
span4
该SQLCreator / SQLExecutor变压器将无法运行存储过程或对数据库的多个SQL语句。该语句将来自SQL +和SQL Developer的运行。如果一个语句失败文本将出现在日志文件中提示用户输入分隔符。
或执行一个SQL查询与结尾的“;” in the Oracle reader or other FME transformer returns an error:
错误是`ORA-00911:无效字符
*您还可能收到其他ORA- *错误。
默认情况下,FME不分裂的SQL语句,并期望单个SQL语句不会结束了“;” delimiter.如果你想在一个查询多个SQL语句,这可能是一个问题。而且它也可以是一个问题,如果你已经削减和其他一些工具粘贴SQL语句,使得它包括了“;”
当输入的SQL查询SQLExecutor / SQLCreator或在读/写BEGIN / END SQL语句的参数遵循以下规则:
1)取出 ';' or other special characters for single line SQL statements.
2)在SQL编辑器对话框的顶部使用下面的语句:
FME_SQL_DELIMITER
例如
FME_SQL_DELIMITER /
任何字符都可以用作分隔符,通常你会希望通过分裂“;”。有时你可能希望输入未出现在SQL中,然后将角色融入声明,使他们能够对分裂的语句准确控制字符。
例如:
FME_SQL_DELIMITER / DECLARE的howmany号码;BEGIN SELECT COUNT(*)INTO的howmany各国;结束;/
你好@朱利安,谢谢你的评论!
我认为,当这篇文章被介绍时(相当长一段时间以前),fme可能处理sql代码有点不同,但我不能确定。有第二个街区是没有意义的。事实上这段代码还有一个问题…
未正确设置fme_sql_delimter…(应该是“/”),结尾缺少“/”。
不正确:
fme_sql_分隔符;开始申报人数;BEGIN SELECT COUNT(*)INTO的howmany各国;结束;结束;
对的:
FME_SQL_DELIMITER / DECLARE的howmany号码;BEGIN SELECT COUNT(*)INTO的howmany各国;结束;/
我将对这篇文章作些修改以反映这一点。谢谢你指出这一点!
嗨,史蒂夫,这是否意味着我们可以从sql创建者运行plsql块并从数据库中获取返回的值。如果是这样的话,我们可以看到使用“atributes to expose”的结果。我正在尝试从sql creator执行plsql块,我希望从数据库中返回一些变量。它成功执行plsql块,但找不到任何结果。
如果需要在Oracle中运行存储过程…
fme_sql_分隔符/begin owner.truncate_table('myfavorite_table');结束;/
在上面的例子中,dba不允许通过fme直接表截断语句…但允许用户调用存储过程来执行相同的操作。dba可能希望跟踪所有表截断,并可能记录有关事务的某些信息,这可以在执行截断时在存储过程中完成。
©2019安全亚搏在线软件公司|法律