Oracle 10g - 数据库导入时无效的字符

时间:2011-08-22 10:31:21

标签: oracle10g

我有几个要导入的SQL文件。

一个例子:

CREATE TABLE BB_Department (
    idDepartment number(2)  ,
    DeptName varchar2(25) ,
    DeptDesc varchar2(100) ,
    DeptImage varchar2(25) ,
    CONSTRAINT dept_id_pk PRIMARY KEY(idDepartment) );
insert into bb_department 
   values(1,'Coffee','Many types of coffee beans','coffee.gif');

使用http://localhost:8080/apex导入时,我会不断收到“无效字符”错误。

似乎一次只能运行一个SQL语句。错误是由任何分号引发的。

一些在线参考文献声明它可能是字符转换 - 但似乎并非如此。

如何在不触发此操作的情况下在Web界面中导入转储文件?

1 个答案:

答案 0 :(得分:2)

我还不太确定您正在使用哪种“Apex网络工具”。我假设它是Oracle 10g Express Edition(Oracle 10g XE)的Web界面。

如果我将SQL语句复制到文本文件中并将其作为SQL脚本上载,我可以无误地运行它。它创建表并插入一行。分号就像语句分隔符一样好。

关于交互式SQL命令页面也是如此。如果命令是编辑区域中的唯一命令(没有分号或斜杠),或者我首先选择命令(再次没有分号或斜杠),我可以成功运行命令。但是,此页面似乎无法运行多个命令(提供ORA-00911,ORA-00910,ORA-00933或ORA-00905)。

可能这些问题中的一些是由于浏览器不兼容造成的。使用Firefox 6,我无法运行或编辑SQL脚本。我可以看到未格式化的SQL文本,但它是只读的并且具有红色背景。顶部的所有按钮都已死(或者在Firefox的Javascript错误控制台中抛出异常)。使用IE 9,它似乎有效。

通常,您可以在单独的行上使用分号或斜杠来分隔Oracle SQL脚本中的命令。所以它是:

insert into bb_department 
  values(1,'Coffee','Many types of coffee beans','coffee.gif');
insert into bb_department 
  values(2,'Sugar','Sweet','sugar.gif');

或者:

insert into bb_department 
  values(1,'Coffee','Many types of coffee beans','coffee.gif')
/
insert into bb_department 
  values(2,'Sugar','Sweet','sugar.gif')
/

如果您有一个BEGIN / END块,无论是匿名PL / SQL块还是存储过程/函数/包,都必须使用斜杠。

运行SQL脚本的可靠工具是命令行工具SQL * plus。它绝对支持分号和斜杠。除了SQL语句和PL / SQL块之外,它还支持其他一些有用的命令。

一个图形化,免费且有用的工具是SQL Developer(来自Oracle)。它支持SQL语句,PL / SQL块和大多数SQL * plus命令。