是否可以在Oracle中以DML插入,更新形式从表返回一行?

问题描述

| 我正在尝试从表中的一行生成一条插入语句? 如果该行是[1,\“ myfirstname \”,\“ mylastname \”],则可以通过以下方式获取查询: \“插入表某表(uid,FirstName,LastName)值(1,\” myfirstname \“, \“我的姓\”) ...不使用动态sql? 谢谢 编辑: 诚然,我对此很懒,并且正试图不使用动态sql / all_tab_columns。 我希望进行一些神奇的函数调用,以返回一行DML语句,就像可以获取对象的DDL表达式一样: 从双选择d​​bms_Metadata.get_ddl(\'TABLE \',\'TABLENAME \')...但是DML连续一行...问我想太多了。     

解决方法

您想将“原始”数据转换为SQL插入语句。 使用SQL无法做到这一点,但是通常GUI客户端具有这种功能     ,我想你需要这个
   insert into table sometable (uid,FirstName,LastName) SELECT 1,\'myfirstname\',\'mylastname\' from othertable where somecondition
也看看这个     ,尝试这个: 从表a中选择\'插入表名(字段名)值(\'\'\'+ a.fieldname + \'\'\')\' 根据需要格式化每个字段值。     ,假设您的字符串格式或多或少是静态的,那么您可能要使用以下示例:
INSERT
   INTO
  someTable
  (
     SELECT
      regexp_substr(expr,\'[0-9]+\') val1,regexp_substr(expr,\'[a-zA-Z]+\') val2,\'[a-zA-Z]+\',1,2) val3
       FROM
      (
         SELECT
          \'[1,\"myfirstname\",\"mylastname\"]\' expr
           FROM
          dual
      )
  ) ;
    ,从Oracle网站下载SQLDeveloper(免费)。 登录到数据库架构,然后从“表”列表中,右键单击要从中获取数据的表,选择\“导出... \”,然后按照向导步骤进行操作,选择格式为“插入”您的数据。它将为您的表中的数据创建一个插入语句文件。 通过在向导的一步中提供从句条件,可以将其限制为行的子集。     ,是的,您可以在Oracle Sqldeveloper中执行此操作。 正如CMG在帖子中所说的那样。 只需右键单击要获取数据的表->导出->插入->指定文件路径以保存脚本->宾果:)