当前位置: 首页 > 知识库问答 >
问题:

查询谁生成insert语句:无效数字

袁雅逸
2023-03-14

我试图执行一个生成inserts语句的查询,如下所示:

select 
  'insert into MYTABLE (
    ID, 
    COLUMN_A, 
    COLUMN_B)
  values (' + 
    ID + ',' +
    COLUMN_A + ',' +
    COLUMN_B  
as INSERTGENERATOR from MYTABLE;

但是我有这个错误:

ORA-01722: invalid number
01722. 00000 -  "invalid number"
*Cause:    
*Action:

为什么?我试着用< code>||代替< code> ,用< code>to_char,但是它没有改变。

共有3个答案

苗承
2023-03-14

使用管道“||”等连接字符串文字时,摆脱了所有痛苦。只需使用最新的字符串文字功能q'[]'

SQL> SELECT q'[insert into MYTABLE (
  2  ID,
  3  COLUMN_A,
  4  COLUMN_B)
  5  values ('ID', 'COLUMN_A','COLUMN_B')]'
  6  AS INSERTGENERATOR
  7  FROM DUAL
  8  /

INSERTGENERATOR
-------------------------------------------
insert into MYTABLE (
ID,
COLUMN_A,
COLUMN_B)
values ('ID', 'COLUMN_A','COLUMN_B')

SQL>

很整洁,不是吗?

墨安阳
2023-03-14

这工作原理:

SELECT
  'INSERT INTO MYTABLE 
  (ID, COLUMN_A, COLUMN_B)
   VALUES (' || 
    ID || ',' ||
    COLUMN_A || ','||
    COLUMN_B || ');'
AS INSERTGENERATOR 
FROM MYTABLE;

样品SQL小提琴

司空元凯
2023-03-14

不要将行尾放在引号内。并且< code>||用于连接。

select 
  'insert into MYTABLE (ID, COLUMN_A, COLUMN_B) values (' ||
    ID || ',' ||
    COLUMN_A || ',' ||
    COLUMN_B || ');'
as INSERTGENERATOR from MYTABLE;
 类似资料:
  • 我的问题很简单。我知道UUID的概念,我想生成一个UUID来引用数据库中“存储”中的每个“项目”。看起来很合理,对吧? 问题是以下行返回错误: 我已经阅读了页面:http://www.postgresql.org/docs/current/static/uuid-ossp.html 我在Ubuntu 10.04 x64上运行Postgres 8.4。

  • 我正在使用jOOQ生成SQL语句。如何创建insert语句?我可以生成select语句,但无法生成insert语句。我可以创建如下select语句: 如何为insert创建SQL语句

  • 为了从我的数据库(oracle,db2)生成insert语句,我使用了带参数的liquibase generateChangeLog命令

  • 问题内容: 我有以下SQL表 部 雇员 我想写一条返回的声明 我有 当然,这缺少“男性雇员的数量”。由于不确定,我被困在这里,在哪里指定附加子句e.gender = male。 我忘了提:HQL或标准会很好。 问题答案: 假设原始查询和架构正确:

  • 主要内容:1.不指定列名,2.通过指定列名称SQL INSERT语句用于在表中插入单个或多个数据。 在SQL中,可以通过以下两种方式插入数据: 不指定列名称 通过指定列名称 假设有一个表: 的结构和数据记录如下 - EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 4

  • 主要内容:语法,实例,使用一个表来填充另一个表SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。 语法 INSERT INTO 语句有两种基本语法,如下所示: 在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。 如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO