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_Plsql - Fatal编程技术网

在oracle中插入批量数据并进行验证

在oracle中插入批量数据并进行验证,oracle,plsql,Oracle,Plsql,我希望以单次插入方式将emp表中的批量数据插入测试表,如果至少有一列违反了约束,我希望防止用户插入并返回错误消息。需要帮忙吗 创建表测试( C1 nvarchar(50)不为空, 指挥控制编号, C3日期) 插入测试(C1、C2、C3)中,从emp中选择(v1、v2、v3) 感谢您,如果您有大量数据要插入,sql loader可能是一种更好的方法 如果这是针对最终用户的,您可能应该使用存储过程、包或函数。。您尚未给出插入代码将在何处运行的任何详细信息。如果您有一个约束,oracle将通过一个异常

我希望以单次插入方式将emp表中的批量数据插入测试表,如果至少有一列违反了约束,我希望防止用户插入并返回错误消息。需要帮忙吗

创建表测试( C1 nvarchar(50)不为空, 指挥控制编号, C3日期)

插入测试(C1、C2、C3)中,从emp中选择(v1、v2、v3)


感谢您,如果您有大量数据要插入,sql loader可能是一种更好的方法


如果这是针对最终用户的,您可能应该使用存储过程、包或函数。。您尚未给出插入代码将在何处运行的任何详细信息。如果您有一个约束,oracle将通过一个异常

以下是一个我认为适用于您的查询的示例:

  BEGIN
      BEGIN
         INSERT INTO Test123
             (C1,C2,C3)
         SELECT name,salary,sysdate FROM avrajit;
      EXCEPTION
         WHEN OTHERS THEN
             dbms_output.put_line('error msg'||sqlerrm);
      END;
  END;

你这里有什么问题?您描述的情况是Oracle默认情况下的确切行为。。。如果违反了约束,则会引发错误并回滚插入。是否要阻止插入任何数据;还是只拒绝有错误的行,让有效插入完成?你可能在找什么?(如果没有,您可能需要阅读《概念指南》中有关约束如何工作的内容)。you.can.catch.the.exception.in.exception.block.so.you.will.be.able.to.show.relevant.error.msg.to.user.Thank请给出如何处理此问题的示例。这是为最终用户提供的,有任何帮助吗?example.for.your.query但您正在抑制错误堆栈。如果没有异常块,您仍然可以看到错误,并获得有关错误发生位置的更多信息。但是查询将一直运行到最后。如果我们在exeption块中添加员工详细信息,它将显示失败的详细信息以及失败原因。哪些员工详细信息-您正在执行单个插入,您如何知道失败的员工?它不会继续下去。听起来像是在描述循环中的单个插入,并在不完全退出循环的情况下报告每个捕获的错误。这并不是你所展示的,但它也比一次插入所有数据要慢。