问题描述
|
我正在尝试从表中的一行生成一条插入语句?
如果该行是[1,\“ myfirstname \”,\“ mylastname \”],则可以通过以下方式获取查询:
\“插入表某表(uid,FirstName,LastName)值(1,\” myfirstname \“,
\“我的姓\”)
...不使用动态SQL?
谢谢
编辑:
诚然,我对此很懒,并且正试图不使用动态sql / all_tab_columns。
我希望进行一些神奇的函数调用,以返回一行DML语句,就像可以获取对象的DDL表达式一样:
从双选择dbms_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在帖子中所说的那样。
只需右键单击要获取数据的表->导出->插入->指定文件路径以保存脚本->宾果:)