Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 全部插入_Oracle_Sql Insert_Sqlplus - Fatal编程技术网

Oracle 全部插入

Oracle 全部插入,oracle,sql-insert,sqlplus,Oracle,Sql Insert,Sqlplus,在选择之前使用换行符是否与下面有区别 INSERT ALL INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','STREAM',1,0,1) INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','BNUMBER',2,0,1) INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','Description',3,9,0) SELECT *

在选择之前使用换行符是否与下面有区别


INSERT ALL
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','STREAM',1,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','BNUMBER',2,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','Description',3,9,0)

SELECT * FROM dual;

并且在选择之前没有新行


INSERT ALL
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','STREAM',1,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','BNUMBER',2,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','Description',3,9,0)
SELECT * FROM dual;

我注意到第一个并没有在表中插入任何内容,而是显示在日志中

D
-
X
而第二个不带换行符的块将显示在日志中 创建了3行

++日志

SQL> desc LOOKUPTABLE_TYPE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 LOOKUPTABLE_NAME                          NOT NULL VARCHAR2(32)
 COLUMN_NAME                               NOT NULL VARCHAR2(32)
 COLUMN_ORDER                              NOT NULL NUMBER(2)
 COLUMN_TYPE                               NOT NULL NUMBER(1)
 COLUMN_MODE                               NOT NULL NUMBER(1)

SQL> INSERT ALL
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','STREAM',1,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','BNUMBER',2,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','Description',3,9,0)

SELECT * FROM dual;  2    3    4    5  SQL> 

D
-
X

SQL> commit
  2  ;

Commit complete.

SQL> select * from LOOKUPTABLE_TYPE where LOOKUPTABLE_NAME='LT_EMERGENCY_NUMBER';

no rows selected

SQL> 
SQL> 
SQL> 
SQL> INSERT ALL
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','STREAM',1,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','BNUMBER',2,0,1)
INTO LOOKUPTABLE_TYPE VALUES ('LT_EMERGENCY_NUMBER','Description',3,9,0)
SELECT * FROM dual;  2    3    4    5  

3 rows created.

SQL> select * from LOOKUPTABLE_TYPE where LOOKUPTABLE_NAME='LT_EMERGENCY_NUMBER';

LOOKUPTABLE_NAME                 COLUMN_NAME                      COLUMN_ORDER
-------------------------------- -------------------------------- ------------
COLUMN_TYPE COLUMN_MODE
----------- -----------
LT_EMERGENCY_NUMBER              BNUMBER                                     2
          0           1

LT_EMERGENCY_NUMBER              Description                                 3
          9           0

LT_EMERGENCY_NUMBER              STREAM                                      1
          0           1


没有区别。您可以在不影响查询含义的情况下,为SQL语句添加任意多的空格,直至达到最大大小

创建表可查找的\u类型 VARCHAR250, b VARCHAR250, c INT, d INT, 电子智力 ; 然后:

全部插入 进入可查找的\u类型值'LT\u紧急\u编号','STREAM',1,0,1 进入可查找的类型值“LT\U紧急情况编号”、“B编号”、2,0,1 进入可查找类型值“LT\U紧急情况\U编号”和“说明”,3,9,0 从双重选择中选择*; 将提供:

还将提供:

SQL/Plus的默认行为是不接受SQL语句中的空行,并假定这将终止该语句并返回。要更改此行为以允许空行,您需要包括指令:

set sqlblanklines on

当SQL/PLUS用空白行解析语句时,它会将语句拆分为两个语句:

全部插入 进入可查找的\u类型值'LT\u紧急\u编号','STREAM',1,0,1 进入可查找的类型值“LT\U紧急情况编号”、“B编号”、2,0,1 进入可查找类型值“LT\U紧急情况\U编号”和“说明”,3,9,0 及

第一个是无效语法,第二个是有效语句,SQL/Plus将处理它并显示查询的输出


如果您启用空行,它将处理完整的语句。

非常感谢,我正在使用sqlplus运行此查询,所以它仍然没有区别,@MustafaMahmod您使用的用户界面应该没有区别,因为解析查询的不是UI,而是服务器上数据库中的SQL引擎。我也希望如此,但是你能再看一次吗?我添加了一个快照来了解正在发生的事情,我通过select语句确认了这一点,所以实际上空行不会引起任何问题,使用toad我认为它可以将其编译为plsql,而使用sqlplus而不是sameI希望我不会占用你太多时间,我更新了一些日志,它清楚地显示了将指令放入登录时运行的login.sql脚本中的不同之处。你应该能够使用这种方法。 3 rows affected
D
-
X
set sqlblanklines on
SELECT * FROM dual;