在 table 中的每条记录中创建数据验证的最简单方法是什么?

what are the easiest way to create a data validation in each records in a table?

我最近项目的逻辑是,当用户通过 csv 输入信息时,我的 CTL 文件将从 csv 检索数据到临时 table,我想创建一个 data验证脚本验证临时table中的每个数据记录,然后再将其传输到主table。

我可能会创建一个程序来获取临时文件 table 的块,检查它们然后将它们插入到基础 table 中。类似于:

DECLARE
  TYPE lt_toValidate IS TABLE OF temp_table%ROWTYPE INDEX BY PLS_INTEGER;
  
  lc_fetchLimit CONSTANT INTEGER := 5000;
  l_tToVal lt_toValidate;
  
  CURSOR c_toVal IS
    SELECT *
    FROM temp_table;
BEGIN
  OPEN c_toVal;
  LOOP
    FETCH c_toVal
    BULK COLLECT INTO l_tToVal
    LIMIT lc_fetchLimit;
    
    EXIT WHEN l_tToVal.COUNT = 0;
    
    FOR i IN 1..l_tToVal.COUNT LOOP
      IF NOT(is_record_valid()) THEN
        l_tToVal.DELETE(i);
      END IF;
    END LOOP;
    
    FORALL i IN INDICES OF l_tToVal
      INSERT INTO base_table (col1, col2, col3) VALUES (l_tToVal(i).col1, l_tToVal(i).col2, l_tToVal(i).col3);
  END LOOP;
END;
  

您只需将 is_record_valid() 替换为您用来确定有效性的任何内容,显然替换为您的 table 和列名称。