我正在尝试从表中的行生成插入语句?
如果行是[1,“myfirstname”,“mylastname”]有一种获取查询的方法:
“插入表sometable(uid,FirstName,LastName)值(1,”myfirstname“, “mylastname”)
...不使用动态sql?
由于
编辑:
当然,我对此很懒,并且试图不使用动态sql / all_tab_columns。 我希望有一些神奇的函数调用返回一行的DML语句,就像有一种方法来获取对象的DDL表达式一样:
从双重选择dbms_metadata.get_ddl('TABLE','TABLENAME')...但是DML是一行......我觉得这太过分了。
答案 0 :(得分:1)
我认为你需要这个
insert into table sometable (uid, FirstName, LastName) SELECT 1 ,'myfirstname', 'mylastname' from othertable where somecondition
再看this
答案 1 :(得分:1)
试试这个:
从表a中选择'insert into tablename(fieldname)values('''+ a.fieldname +''')'
根据需要格式化每个字段值。
答案 2 :(得分:0)
您希望将“原始”数据转换为SQL插入语句。
使用SQL无法做到这一点,但通常GUI客户端具有此类功能
答案 3 :(得分:0)
假设您的字符串格式或多或少是静态的,您可能想要使用此示例:
INSERT
INTO
someTable
(
SELECT
regexp_substr(expr, '[0-9]+') val1 ,
regexp_substr(expr, '[a-zA-Z]+') val2,
regexp_substr(expr, '[a-zA-Z]+', 1, 2) val3
FROM
(
SELECT
'[1 , "myfirstname", "mylastname"]' expr
FROM
dual
)
) ;
答案 4 :(得分:0)
从Oracle网站下载SQLDeveloper(它是免费的)。 登录到您的数据库模式,从表的列表中,右键单击要从中获取数据的表,选择“导出...”,然后按照向导步骤选择“插入”格式的数据。它将为您创建表中数据的insert语句文件。 您可以通过在向导的一个步骤中提供where子句条件来将其限制为仅仅行的子集。
答案 5 :(得分:0)
是的,您可以在Oracle Sqldeveloper中执行此操作。 正如CMG在帖子中所说的那样容易。 只需右键单击要获取数据的表 - >导出 - > INSERT - >指定保存脚本的文件路径 - > bingo:)