我在更新某些记录时遇到了错误,并且需要一些帮助来“恢复”它们。我需要下面的数据,我需要EC和INVOICE_NUM KEYWORD有一个迭代器后缀,就像下面所示的期望结果一样。Oracle使用迭代器更新数据
如何遍历我的所有记录,并针对EC和INVOICE_NUM KEYWORD具有> 1 VALUE的每个RID执行此操作?如果只有一个EC或INVOICE_NUM,则不需要更新,它可以保留为EC或INVOICE_NUM。
在制作:
RID KEYWORD VALUE
692307 BANK_NUM 17
692307 CHECK_AMT $ 2504.62
692307 CHECK_DT 71121
692307 CHECK_NUM 27034
692307 DOC_NAME Expense-Check
692307 EC 71103CTRC
692307 EC 71027TNRF
692307 EC 71114TXWCS
692307 EC 71117TXCP
692307 EC 7111ONJAD
692307 FILENAME Q:\teleform\00028076\0
692307 INVOICE_NUM 2193000086
692307 INVOICE_NUM 9190000875
692307 INVOICE_NUM 9600010418
692307 INVOICE_NUM 9600010414
692307 INVOICE_NUM 8100000372
692307 VEND_NAME KINKO'S INC.
692307 VEND_NUM 1002838
期望的结果:
RID KEYWORD VALUE
692307 BANK_NUM 17
692307 CHECK_AMT $ 2504.62
692307 CHECK_DT 71121
692307 CHECK_NUM 27034
692307 DOC_NAME Expense-Check
692307 EC_1 71103CTRC
692307 EC_2 71027TNRF
692307 EC_3 71114TXWCS
692307 EC_4 71117TXCP
692307 EC_5 7111ONJAD
692307 FILENAME Q:\teleform\00028076\0
692307 INVOICE_NUM_1 9190000875
692307 INVOICE_NUM_2 2193000086
692307 INVOICE_NUM_3 9600010418
692307 INVOICE_NUM_4 9600010414
692307 INVOICE_NUM_5 8100000372
692307 VEND_NAME KINKO'S INC.
692307 VEND_NUM 1002838
同上的查询结果:
RID ORIGINAL_KEYWORD VALUE NEW_KEYWORD
3361978 DOC_NAME Expense-Check DOC_NAME_1
3361979 DOC_NAME Expense-Check DOC_NAME_2
3361980 DOC_NAME Expense-Check DOC_NAME_3
3361981 DOC_NAME Expense-Check DOC_NAME_4
3361982 DOC_NAME Expense-Check DOC_NAME_5
3361983 DOC_NAME Expense-Check DOC_NAME_6
3361984 DOC_NAME Expense-Check DOC_NAME_7
3361985 DOC_NAME Expense-Check DOC_NAME_8
3361986 DOC_NAME Expense-Check DOC_NAME_9
3361987 DOC_NAME Expense-Check DOC_NAME_10
*更多更新*
RID KEYWORD VALUE
5716220 BANK_NUMBER 17
5716220 CHECK_AMOUNT $ 3797.68
5716220 CHECK_DATE 141211
5716220 CHECK_NUMBER 67714
5716220 DOC_NAME Expense-Check
5716220 EVENT_CODE 141107NVCC
5716220 EVENT_CODE 141107NVCC
5716220 EVENT_CODE 141113FLRC
5716220 EVENT_CODE 141031INRA
5716220 EVENT_CODE 141107MSAM
5716220 EVENT_CODE 141113SCRCO
5716220 FILENAME Q:\teleform\00133619\0
5716220 INVOICE_NUMBER DB791094
5716220 INVOICE_NUMBER 791094
5716220 INVOICE_NUMBER 792456
5716220 INVOICE_NUMBER 789983
5716220 INVOICE_NUMBER 791910
5716220 INVOICE_NUMBER 792452
5716220 VENDOR_NAME VTECH
5716220 VENDOR_NUMBER 1001685
5716221 BANK_NUMBER 17
5716221 CHECK_AMOUNT $ 3797.68
5716221 CHECK_DATE 141211
5716221 CHECK_NUMBER 67714
5716221 DOC_NAME Expense-Check
5716221 EVENT_CODE 141113SCRCO
5716221 EVENT_CODE 141113AZRAR
5716221 EVENT_CODE 141104MORER
5716221 FILENAME Q:\teleform\00133619\1
5716221 INVOICE_NUMBER 792959
5716221 INVOICE_NUMBER 792508
5716221 INVOICE_NUMBER 790437
5716221 VENDOR_NAME VTECH
5716221 VENDOR_NUMBER 1001685
5716222 BANK_NUMBER 17
5716222 CHECK_AMOUNT $ 7782.73
5716222 CHECK_DATE 141211
5716222 CHECK_NUMBER 67711
5716222 DOC_NAME Expense-Check
5716222 EVENT_CODE
5716222 EVENT_CODE
5716222 FILENAME Q:\teleform\00133616\0
5716222 INVOICE_NUMBER 150562
5716222 INVOICE_NUMBER 150533
5716222 VENDOR_NAME TGRAPH
5716222 VENDOR_NUMBER 1001672
个
结果应该是这样的:
RID KEYWORD VALUE
5716220 BANK_NUMBER 17
5716220 CHECK_AMOUNT $ 3797.68
5716220 CHECK_DATE 141211
5716220 CHECK_NUMBER 67714
5716220 DOC_NAME Expense-Check
5716220 EVENT_CODE_1 141107NVCC
5716220 EVENT_CODE_2 141107NVCC
5716220 EVENT_CODE_3 141113FLRC
5716220 EVENT_CODE_4 141031INRA
5716220 EVENT_CODE_5 141107MSAM
5716220 EVENT_CODE_6 141113SCRCO
5716220 FILENAME Q:\teleform\00133619\0
5716220 INVOICE_NUMBER_1 DB791094
5716220 INVOICE_NUMBER_2 791094
5716220 INVOICE_NUMBER_3 792456
5716220 INVOICE_NUMBER_4 789983
5716220 INVOICE_NUMBER_5 791910
5716220 INVOICE_NUMBER_6 792452
5716220 VENDOR_NAME VTECH
5716220 VENDOR_NUMBER 1001685
5716221 BANK_NUMBER 17
5716221 CHECK_AMOUNT $ 3797.68
5716221 CHECK_DATE 141211
5716221 CHECK_NUMBER 67714
5716221 DOC_NAME Expense-Check
5716221 EVENT_CODE_1 141113SCRCO
5716221 EVENT_CODE_2 141113AZRAR
5716221 EVENT_CODE_3 141104MORER
5716221 FILENAME Q:\teleform\00133619\1
5716221 INVOICE_NUMBER_1 792959
5716221 INVOICE_NUMBER_2 792508
5716221 INVOICE_NUMBER_3 790437
5716221 VENDOR_NAME VTECH
5716221 VENDOR_NUMBER 1001685
5716222 BANK_NUMBER 17
5716222 CHECK_AMOUNT $ 7782.73
5716222 CHECK_DATE 141211
5716222 CHECK_NUMBER 67711
5716222 DOC_NAME Expense-Check
5716222 EVENT_CODE_1
5716222 EVENT_CODE_2
5716222 FILENAME Q:\teleform\00133616\0
5716222 INVOICE_NUMBER_1 150562
5716222 INVOICE_NUMBER_2 150533
5716222 VENDOR_NAME TGRAPH
5716222 VENDOR_NUMBER 1001672
表的结构如上所示。数据来自需要更新的同一张表。
那你试试? – Iffo
排序他们的标准是什么?例如,为什么“EC_1 71103CTRC”和“EC_2 71027TNRF”,而不是“EC_2 71103CTRC”和“EC_1 71027TNRF”? – Ditto
@同上,没关系,没关系。 – MB34