【发布时间】:2013-01-18 07:27:15
【问题描述】:
我有 SQL 脚本:
CREATE TABLE TESTTABLE1(
ID_TESTTABLE1 NUMBER (18) NOT NULL,
TESTTABLE_VALUE1 NUMBER (18),
TESTTABLE_KEY1 NUMBER (18))
并使用 Fluentmigrator:
[Migration(201302021800)]
public class Migration_201302021800 : AutoReversingMigration
{
public override void Up()
{
var url = @"Update_1.0.0.5.sql";
Execute.Script(url);
}
}
它执行成功,如果我添加一些SQL:
CREATE TABLE TESTTABLE1
(
ID_TESTTABLE1 NUMBER (18) NOT NULL,
TESTTABLE_VALUE1 NUMBER (18),
TESTTABLE_KEY1 NUMBER (18)
);
CREATE TABLE TESTTABLE
(
ID_TESTTABLE NUMBER (18) NOT NULL,
TESTTABLE_VALUE NUMBER (18),
TESTTABLE_KEY NUMBER (18)
);
在 Fluentmigrator 中执行失败,Oracle exeption {"ORA-00911: invalid character"}。
我的数据库是 Oracle db。
有什么问题?
【问题讨论】:
-
您是否尝试在 fluent-migrator 之外运行扩展 SQL?它将帮助您区分问题是流式迁移还是纯 SQL。
-
当然可以。它在 oracle 中成功执行。但我认为问题在于需要执行单个 sql 命令(如果它从 c# 执行),而不是一次全部执行。但我认为这是一些一次性运行的解决方案。
-
因为我想您已经检查了错误的潜在来源 (techonthenet.com/oracle/errors/ora00911.php)。我建议将 SQL 拆分为两个文件。它经常帮助我通过流利的迁移器。
-
是的,没关系,但是在真正的 sql 脚本中,我有超过 10 个命令,所以如果我从文件中拆分出来,我将有 10 个文件,这可能不是好方法
-
也许是解析他的想法,然后在 foreach 中运行。但它不是稳定的情况。你认为不可能运行整个 sql 脚本吗?
标签: c# .net oracle11g database-migration fluent-migrator