{
  "status": "SOURCE_ONLY_NEW_SHADOW_PROPOSAL_NOT_AUTHORIZED",
  "marker": "CDXPPFULL11",
  "max_rows": 1,
  "columns": [
    "ID",
    "SOURCE",
    "DEVICE_ORDER_NO",
    "MACHID",
    "EQUIPMENT_ID",
    "RESTAURANT_ID",
    "TRACKNO",
    "GOODS_NAME",
    "PRICE",
    "CHANNELID",
    "PREPAY_STATUS",
    "MEAL_ORDER_ID",
    "MEAL_ORDER_NO",
    "USER_ID",
    "SHIP_STATUS",
    "ERRINFO",
    "RAW_REQUEST_A",
    "RAW_REQUEST_C",
    "RAW_REQUEST_B",
    "QRCODE_PAYLOAD",
    "EXPIRE_TIME",
    "PAY_TIME",
    "SHIP_TIME",
    "CREATE_TIME",
    "CREATE_BY",
    "UPDATE_TIME",
    "UPDATE_BY"
  ],
  "payloads": {
    "P257_A": "营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营A",
    "P257_a": "营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营a"
  },
  "payload_provenance": "Literal257 unicode characters;256 x U+8425 plus last ASCII case.769 UTF8 bytes. Source TEXT legal below65535 bytes.",
  "B": {
    "table": "cdx_ppfull261011_s2",
    "create": "CREATE TABLE cdx_ppfull261011_s2 LIKE ydy_prepay_order",
    "cleanup": [
      "DROP TABLE cdx_ppfull261011_s2"
    ]
  },
  "C": {
    "table": "ZHCT_APP.CDX_PPFULL261011_S2",
    "create": "CREATE TABLE ZHCT_APP.CDX_PPFULL261011_S2 (ID BIGINT NOT NULL,SOURCE SMALLINT DEFAULT 1 NOT NULL,DEVICE_ORDER_NO VARCHAR(64 CHAR) DEFAULT '' NOT NULL,MACHID VARCHAR(32 CHAR) DEFAULT '' NOT NULL,EQUIPMENT_ID BIGINT DEFAULT 0 NOT NULL,RESTAURANT_ID BIGINT DEFAULT 1 NOT NULL,TRACKNO VARCHAR(32 CHAR) DEFAULT '' NOT NULL,GOODS_NAME VARCHAR(128 CHAR) DEFAULT '' NOT NULL,PRICE BIGINT DEFAULT 0 NOT NULL,CHANNELID VARCHAR(16 CHAR) DEFAULT '' NOT NULL,PREPAY_STATUS SMALLINT DEFAULT 2 NOT NULL,MEAL_ORDER_ID BIGINT DEFAULT 0 NOT NULL,MEAL_ORDER_NO VARCHAR(32 CHAR) DEFAULT '' NOT NULL,USER_ID BIGINT DEFAULT 0 NOT NULL,SHIP_STATUS SMALLINT DEFAULT 0 NOT NULL,ERRINFO VARCHAR(500 CHAR) DEFAULT '' NOT NULL,RAW_REQUEST_A CLOB NULL,RAW_REQUEST_C CLOB NULL,RAW_REQUEST_B CLOB NULL,QRCODE_PAYLOAD CLOB NULL,EXPIRE_TIME DATETIME(0) DEFAULT '2000-01-01 00:00:00' NOT NULL,PAY_TIME DATETIME(0) DEFAULT '2000-01-01 00:00:00' NOT NULL,SHIP_TIME DATETIME(0) DEFAULT '2000-01-01 00:00:00' NOT NULL,CREATE_TIME DATETIME(0) DEFAULT CURRENT_TIMESTAMP(0) NOT NULL,CREATE_BY VARCHAR(32 CHAR) DEFAULT '' NOT NULL,UPDATE_TIME DATETIME(0) DEFAULT CURRENT_TIMESTAMP(0) NOT NULL,UPDATE_BY VARCHAR(32 CHAR) DEFAULT '' NOT NULL,CONSTRAINT PK_CDX_PPFULL261011_S2 PRIMARY KEY(ID))",
    "create_trigger": "CREATE TRIGGER ZHCT_APP.TRG_CDX_PPFULL261011_S2\nBEFORE UPDATE ON ZHCT_APP.CDX_PPFULL261011_S2\nFOR EACH ROW\nDECLARE\n  V_CHANGED INT := 0;\n  V_POS BIGINT;\n  V_OLD_LEN BIGINT;\n  V_NEW_LEN BIGINT;\nBEGIN\n  IF NOT UPDATING('UPDATE_TIME') THEN\n    -- All22 non-CLOB fields; do not read long LOBs once a scalar changed.\n    IF ((:NEW.ID IS NULL AND :OLD.ID IS NOT NULL)\n        OR (:NEW.ID IS NOT NULL AND :OLD.ID IS NULL)\n        OR (:NEW.ID IS NOT NULL AND :OLD.ID IS NOT NULL AND :NEW.ID <> :OLD.ID))\n    OR ((:NEW.SOURCE IS NULL AND :OLD.SOURCE IS NOT NULL)\n        OR (:NEW.SOURCE IS NOT NULL AND :OLD.SOURCE IS NULL)\n        OR (:NEW.SOURCE IS NOT NULL AND :OLD.SOURCE IS NOT NULL AND :NEW.SOURCE <> :OLD.SOURCE))\n    OR (NVL(LENGTHB(:NEW.DEVICE_ORDER_NO), -1) <> NVL(LENGTHB(:OLD.DEVICE_ORDER_NO), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.DEVICE_ORDER_NO)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.DEVICE_ORDER_NO)), '#'))\n    OR (NVL(LENGTHB(:NEW.MACHID), -1) <> NVL(LENGTHB(:OLD.MACHID), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.MACHID)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.MACHID)), '#'))\n    OR ((:NEW.EQUIPMENT_ID IS NULL AND :OLD.EQUIPMENT_ID IS NOT NULL)\n        OR (:NEW.EQUIPMENT_ID IS NOT NULL AND :OLD.EQUIPMENT_ID IS NULL)\n        OR (:NEW.EQUIPMENT_ID IS NOT NULL AND :OLD.EQUIPMENT_ID IS NOT NULL AND :NEW.EQUIPMENT_ID <> :OLD.EQUIPMENT_ID))\n    OR ((:NEW.RESTAURANT_ID IS NULL AND :OLD.RESTAURANT_ID IS NOT NULL)\n        OR (:NEW.RESTAURANT_ID IS NOT NULL AND :OLD.RESTAURANT_ID IS NULL)\n        OR (:NEW.RESTAURANT_ID IS NOT NULL AND :OLD.RESTAURANT_ID IS NOT NULL AND :NEW.RESTAURANT_ID <> :OLD.RESTAURANT_ID))\n    OR (NVL(LENGTHB(:NEW.TRACKNO), -1) <> NVL(LENGTHB(:OLD.TRACKNO), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.TRACKNO)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.TRACKNO)), '#'))\n    OR (NVL(LENGTHB(:NEW.GOODS_NAME), -1) <> NVL(LENGTHB(:OLD.GOODS_NAME), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.GOODS_NAME)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.GOODS_NAME)), '#'))\n    OR ((:NEW.PRICE IS NULL AND :OLD.PRICE IS NOT NULL)\n        OR (:NEW.PRICE IS NOT NULL AND :OLD.PRICE IS NULL)\n        OR (:NEW.PRICE IS NOT NULL AND :OLD.PRICE IS NOT NULL AND :NEW.PRICE <> :OLD.PRICE))\n    OR (NVL(LENGTHB(:NEW.CHANNELID), -1) <> NVL(LENGTHB(:OLD.CHANNELID), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.CHANNELID)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.CHANNELID)), '#'))\n    OR ((:NEW.PREPAY_STATUS IS NULL AND :OLD.PREPAY_STATUS IS NOT NULL)\n        OR (:NEW.PREPAY_STATUS IS NOT NULL AND :OLD.PREPAY_STATUS IS NULL)\n        OR (:NEW.PREPAY_STATUS IS NOT NULL AND :OLD.PREPAY_STATUS IS NOT NULL AND :NEW.PREPAY_STATUS <> :OLD.PREPAY_STATUS))\n    OR ((:NEW.MEAL_ORDER_ID IS NULL AND :OLD.MEAL_ORDER_ID IS NOT NULL)\n        OR (:NEW.MEAL_ORDER_ID IS NOT NULL AND :OLD.MEAL_ORDER_ID IS NULL)\n        OR (:NEW.MEAL_ORDER_ID IS NOT NULL AND :OLD.MEAL_ORDER_ID IS NOT NULL AND :NEW.MEAL_ORDER_ID <> :OLD.MEAL_ORDER_ID))\n    OR (NVL(LENGTHB(:NEW.MEAL_ORDER_NO), -1) <> NVL(LENGTHB(:OLD.MEAL_ORDER_NO), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.MEAL_ORDER_NO)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.MEAL_ORDER_NO)), '#'))\n    OR ((:NEW.USER_ID IS NULL AND :OLD.USER_ID IS NOT NULL)\n        OR (:NEW.USER_ID IS NOT NULL AND :OLD.USER_ID IS NULL)\n        OR (:NEW.USER_ID IS NOT NULL AND :OLD.USER_ID IS NOT NULL AND :NEW.USER_ID <> :OLD.USER_ID))\n    OR ((:NEW.SHIP_STATUS IS NULL AND :OLD.SHIP_STATUS IS NOT NULL)\n        OR (:NEW.SHIP_STATUS IS NOT NULL AND :OLD.SHIP_STATUS IS NULL)\n        OR (:NEW.SHIP_STATUS IS NOT NULL AND :OLD.SHIP_STATUS IS NOT NULL AND :NEW.SHIP_STATUS <> :OLD.SHIP_STATUS))\n    OR (NVL(LENGTHB(:NEW.ERRINFO), -1) <> NVL(LENGTHB(:OLD.ERRINFO), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.ERRINFO)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.ERRINFO)), '#'))\n    OR ((:NEW.EXPIRE_TIME IS NULL AND :OLD.EXPIRE_TIME IS NOT NULL)\n        OR (:NEW.EXPIRE_TIME IS NOT NULL AND :OLD.EXPIRE_TIME IS NULL)\n        OR (:NEW.EXPIRE_TIME IS NOT NULL AND :OLD.EXPIRE_TIME IS NOT NULL AND :NEW.EXPIRE_TIME <> :OLD.EXPIRE_TIME))\n    OR ((:NEW.PAY_TIME IS NULL AND :OLD.PAY_TIME IS NOT NULL)\n        OR (:NEW.PAY_TIME IS NOT NULL AND :OLD.PAY_TIME IS NULL)\n        OR (:NEW.PAY_TIME IS NOT NULL AND :OLD.PAY_TIME IS NOT NULL AND :NEW.PAY_TIME <> :OLD.PAY_TIME))\n    OR ((:NEW.SHIP_TIME IS NULL AND :OLD.SHIP_TIME IS NOT NULL)\n        OR (:NEW.SHIP_TIME IS NOT NULL AND :OLD.SHIP_TIME IS NULL)\n        OR (:NEW.SHIP_TIME IS NOT NULL AND :OLD.SHIP_TIME IS NOT NULL AND :NEW.SHIP_TIME <> :OLD.SHIP_TIME))\n    OR ((:NEW.CREATE_TIME IS NULL AND :OLD.CREATE_TIME IS NOT NULL)\n        OR (:NEW.CREATE_TIME IS NOT NULL AND :OLD.CREATE_TIME IS NULL)\n        OR (:NEW.CREATE_TIME IS NOT NULL AND :OLD.CREATE_TIME IS NOT NULL AND :NEW.CREATE_TIME <> :OLD.CREATE_TIME))\n    OR (NVL(LENGTHB(:NEW.CREATE_BY), -1) <> NVL(LENGTHB(:OLD.CREATE_BY), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.CREATE_BY)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.CREATE_BY)), '#'))\n    OR (NVL(LENGTHB(:NEW.UPDATE_BY), -1) <> NVL(LENGTHB(:OLD.UPDATE_BY), -1)\n        OR NVL(RAWTOHEX(CHARTOBIN(:NEW.UPDATE_BY)), '#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.UPDATE_BY)), '#')) THEN\n      V_CHANGED := 1;\n    END IF;\n    -- FIELD RAW_REQUEST_A: full nullable CLOB, not first-chunk or collation equality.\n    IF V_CHANGED = 0 THEN\n      IF (:NEW.RAW_REQUEST_A IS NULL AND :OLD.RAW_REQUEST_A IS NOT NULL)\n         OR (:NEW.RAW_REQUEST_A IS NOT NULL AND :OLD.RAW_REQUEST_A IS NULL) THEN\n        V_CHANGED := 1;\n      ELSIF :NEW.RAW_REQUEST_A IS NOT NULL AND :OLD.RAW_REQUEST_A IS NOT NULL THEN\n        V_OLD_LEN := LENGTH(:OLD.RAW_REQUEST_A);\n        V_NEW_LEN := LENGTH(:NEW.RAW_REQUEST_A);\n        IF V_OLD_LEN <> V_NEW_LEN THEN\n          V_CHANGED := 1;\n        ELSE\n          V_POS := 1;\n          WHILE V_CHANGED = 0 AND V_POS <= V_OLD_LEN LOOP\n            IF NVL(LENGTHB(SUBSTR(:NEW.RAW_REQUEST_A,V_POS,256)), -1) <> NVL(LENGTHB(SUBSTR(:OLD.RAW_REQUEST_A,V_POS,256)), -1)\n               OR NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:NEW.RAW_REQUEST_A,V_POS,256))), '#')\n                  <> NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:OLD.RAW_REQUEST_A,V_POS,256))), '#') THEN\n              V_CHANGED := 1;\n            END IF;\n            V_POS := V_POS + 256;\n          END LOOP;\n        END IF;\n      END IF;\n    END IF;\n    -- FIELD RAW_REQUEST_C: full nullable CLOB, not first-chunk or collation equality.\n    IF V_CHANGED = 0 THEN\n      IF (:NEW.RAW_REQUEST_C IS NULL AND :OLD.RAW_REQUEST_C IS NOT NULL)\n         OR (:NEW.RAW_REQUEST_C IS NOT NULL AND :OLD.RAW_REQUEST_C IS NULL) THEN\n        V_CHANGED := 1;\n      ELSIF :NEW.RAW_REQUEST_C IS NOT NULL AND :OLD.RAW_REQUEST_C IS NOT NULL THEN\n        V_OLD_LEN := LENGTH(:OLD.RAW_REQUEST_C);\n        V_NEW_LEN := LENGTH(:NEW.RAW_REQUEST_C);\n        IF V_OLD_LEN <> V_NEW_LEN THEN\n          V_CHANGED := 1;\n        ELSE\n          V_POS := 1;\n          WHILE V_CHANGED = 0 AND V_POS <= V_OLD_LEN LOOP\n            IF NVL(LENGTHB(SUBSTR(:NEW.RAW_REQUEST_C,V_POS,256)), -1) <> NVL(LENGTHB(SUBSTR(:OLD.RAW_REQUEST_C,V_POS,256)), -1)\n               OR NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:NEW.RAW_REQUEST_C,V_POS,256))), '#')\n                  <> NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:OLD.RAW_REQUEST_C,V_POS,256))), '#') THEN\n              V_CHANGED := 1;\n            END IF;\n            V_POS := V_POS + 256;\n          END LOOP;\n        END IF;\n      END IF;\n    END IF;\n    -- FIELD RAW_REQUEST_B: full nullable CLOB, not first-chunk or collation equality.\n    IF V_CHANGED = 0 THEN\n      IF (:NEW.RAW_REQUEST_B IS NULL AND :OLD.RAW_REQUEST_B IS NOT NULL)\n         OR (:NEW.RAW_REQUEST_B IS NOT NULL AND :OLD.RAW_REQUEST_B IS NULL) THEN\n        V_CHANGED := 1;\n      ELSIF :NEW.RAW_REQUEST_B IS NOT NULL AND :OLD.RAW_REQUEST_B IS NOT NULL THEN\n        V_OLD_LEN := LENGTH(:OLD.RAW_REQUEST_B);\n        V_NEW_LEN := LENGTH(:NEW.RAW_REQUEST_B);\n        IF V_OLD_LEN <> V_NEW_LEN THEN\n          V_CHANGED := 1;\n        ELSE\n          V_POS := 1;\n          WHILE V_CHANGED = 0 AND V_POS <= V_OLD_LEN LOOP\n            IF NVL(LENGTHB(SUBSTR(:NEW.RAW_REQUEST_B,V_POS,256)), -1) <> NVL(LENGTHB(SUBSTR(:OLD.RAW_REQUEST_B,V_POS,256)), -1)\n               OR NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:NEW.RAW_REQUEST_B,V_POS,256))), '#')\n                  <> NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:OLD.RAW_REQUEST_B,V_POS,256))), '#') THEN\n              V_CHANGED := 1;\n            END IF;\n            V_POS := V_POS + 256;\n          END LOOP;\n        END IF;\n      END IF;\n    END IF;\n    -- FIELD QRCODE_PAYLOAD: full nullable CLOB, not first-chunk or collation equality.\n    IF V_CHANGED = 0 THEN\n      IF (:NEW.QRCODE_PAYLOAD IS NULL AND :OLD.QRCODE_PAYLOAD IS NOT NULL)\n         OR (:NEW.QRCODE_PAYLOAD IS NOT NULL AND :OLD.QRCODE_PAYLOAD IS NULL) THEN\n        V_CHANGED := 1;\n      ELSIF :NEW.QRCODE_PAYLOAD IS NOT NULL AND :OLD.QRCODE_PAYLOAD IS NOT NULL THEN\n        V_OLD_LEN := LENGTH(:OLD.QRCODE_PAYLOAD);\n        V_NEW_LEN := LENGTH(:NEW.QRCODE_PAYLOAD);\n        IF V_OLD_LEN <> V_NEW_LEN THEN\n          V_CHANGED := 1;\n        ELSE\n          V_POS := 1;\n          WHILE V_CHANGED = 0 AND V_POS <= V_OLD_LEN LOOP\n            IF NVL(LENGTHB(SUBSTR(:NEW.QRCODE_PAYLOAD,V_POS,256)), -1) <> NVL(LENGTHB(SUBSTR(:OLD.QRCODE_PAYLOAD,V_POS,256)), -1)\n               OR NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:NEW.QRCODE_PAYLOAD,V_POS,256))), '#')\n                  <> NVL(RAWTOHEX(CHARTOBIN(SUBSTR(:OLD.QRCODE_PAYLOAD,V_POS,256))), '#') THEN\n              V_CHANGED := 1;\n            END IF;\n            V_POS := V_POS + 256;\n          END LOOP;\n        END IF;\n      END IF;\n    END IF;\n    IF V_CHANGED = 1 THEN\n      :NEW.UPDATE_TIME := TO_TIMESTAMP(TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS');\n    END IF;\n  END IF;\nEND;",
    "cleanup": [
      "DROP TRIGGER ZHCT_APP.TRG_CDX_PPFULL261011_S2",
      "DROP TABLE ZHCT_APP.CDX_PPFULL261011_S2"
    ]
  },
  "baseline_binds": [
    1,
    1,
    "CDXPPFULL11_ORDER",
    "CDXPPFULL11_M1",
    0,
    1,
    "T1",
    "CDXPPFULL11",
    1,
    "T",
    2,
    0,
    "",
    0,
    0,
    "",
    {
      "payload_ref": "P257_A"
    },
    {
      "payload_ref": "P257_A"
    },
    {
      "payload_ref": "P257_A"
    },
    {
      "payload_ref": "P257_A"
    },
    "2000-01-01 00:00:00",
    "2000-01-01 00:00:00",
    "2000-01-01 00:00:00",
    "2001-01-01 00:00:00",
    "CDXPPFULL11",
    "2001-01-01 00:00:00",
    "CDXPPFULL11"
  ],
  "baseline_PDO_types": [
    1,
    1,
    2,
    2,
    1,
    1,
    2,
    2,
    1,
    2,
    1,
    1,
    2,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2
  ],
  "insert": {
    "B": {
      "SQL": "INSERT INTO cdx_ppfull261011_s2 (ID,SOURCE,DEVICE_ORDER_NO,MACHID,EQUIPMENT_ID,RESTAURANT_ID,TRACKNO,GOODS_NAME,PRICE,CHANNELID,PREPAY_STATUS,MEAL_ORDER_ID,MEAL_ORDER_NO,USER_ID,SHIP_STATUS,ERRINFO,RAW_REQUEST_A,RAW_REQUEST_C,RAW_REQUEST_B,QRCODE_PAYLOAD,EXPIRE_TIME,PAY_TIME,SHIP_TIME,CREATE_TIME,CREATE_BY,UPDATE_TIME,UPDATE_BY) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
      "binds": [
        1,
        1,
        "CDXPPFULL11_ORDER",
        "CDXPPFULL11_M1",
        0,
        1,
        "T1",
        "CDXPPFULL11",
        1,
        "T",
        2,
        0,
        "",
        0,
        0,
        "",
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        "2001-01-01 00:00:00",
        "CDXPPFULL11"
      ],
      "PDO_types": [
        1,
        1,
        2,
        2,
        1,
        1,
        2,
        2,
        1,
        2,
        1,
        1,
        2,
        1,
        1,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2
      ]
    },
    "C": {
      "SQL": "INSERT INTO ZHCT_APP.CDX_PPFULL261011_S2 (ID,SOURCE,DEVICE_ORDER_NO,MACHID,EQUIPMENT_ID,RESTAURANT_ID,TRACKNO,GOODS_NAME,PRICE,CHANNELID,PREPAY_STATUS,MEAL_ORDER_ID,MEAL_ORDER_NO,USER_ID,SHIP_STATUS,ERRINFO,RAW_REQUEST_A,RAW_REQUEST_C,RAW_REQUEST_B,QRCODE_PAYLOAD,EXPIRE_TIME,PAY_TIME,SHIP_TIME,CREATE_TIME,CREATE_BY,UPDATE_TIME,UPDATE_BY) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
      "binds": [
        1,
        1,
        "CDXPPFULL11_ORDER",
        "CDXPPFULL11_M1",
        0,
        1,
        "T1",
        "CDXPPFULL11",
        1,
        "T",
        2,
        0,
        "",
        0,
        0,
        "",
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        "2001-01-01 00:00:00",
        "CDXPPFULL11"
      ],
      "PDO_types": [
        1,
        1,
        2,
        2,
        1,
        1,
        2,
        2,
        1,
        2,
        1,
        1,
        2,
        1,
        1,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2
      ]
    }
  },
  "reset": {
    "B": {
      "SQL": "UPDATE cdx_ppfull261011_s2 SET ID=?,SOURCE=?,DEVICE_ORDER_NO=?,MACHID=?,EQUIPMENT_ID=?,RESTAURANT_ID=?,TRACKNO=?,GOODS_NAME=?,PRICE=?,CHANNELID=?,PREPAY_STATUS=?,MEAL_ORDER_ID=?,MEAL_ORDER_NO=?,USER_ID=?,SHIP_STATUS=?,ERRINFO=?,RAW_REQUEST_A=?,RAW_REQUEST_C=?,RAW_REQUEST_B=?,QRCODE_PAYLOAD=?,EXPIRE_TIME=?,PAY_TIME=?,SHIP_TIME=?,CREATE_TIME=?,CREATE_BY=?,UPDATE_TIME=?,UPDATE_BY=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        1,
        "CDXPPFULL11_ORDER",
        "CDXPPFULL11_M1",
        0,
        1,
        "T1",
        "CDXPPFULL11",
        1,
        "T",
        2,
        0,
        "",
        0,
        0,
        "",
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        1,
        2,
        2,
        1,
        1,
        2,
        2,
        1,
        2,
        1,
        1,
        2,
        1,
        1,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        1,
        2
      ]
    },
    "C": {
      "SQL": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET ID=?,SOURCE=?,DEVICE_ORDER_NO=?,MACHID=?,EQUIPMENT_ID=?,RESTAURANT_ID=?,TRACKNO=?,GOODS_NAME=?,PRICE=?,CHANNELID=?,PREPAY_STATUS=?,MEAL_ORDER_ID=?,MEAL_ORDER_NO=?,USER_ID=?,SHIP_STATUS=?,ERRINFO=?,RAW_REQUEST_A=?,RAW_REQUEST_C=?,RAW_REQUEST_B=?,QRCODE_PAYLOAD=?,EXPIRE_TIME=?,PAY_TIME=?,SHIP_TIME=?,CREATE_TIME=?,CREATE_BY=?,UPDATE_TIME=?,UPDATE_BY=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        1,
        "CDXPPFULL11_ORDER",
        "CDXPPFULL11_M1",
        0,
        1,
        "T1",
        "CDXPPFULL11",
        1,
        "T",
        2,
        0,
        "",
        0,
        0,
        "",
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        {
          "payload_ref": "P257_A"
        },
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2000-01-01 00:00:00",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        "2001-01-01 00:00:00",
        "CDXPPFULL11",
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        1,
        2,
        2,
        1,
        1,
        2,
        2,
        1,
        2,
        1,
        1,
        2,
        1,
        1,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        1,
        2
      ]
    }
  },
  "cases": [
    {
      "label": "BOUNDARY_RAW_REQUEST_A",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_A=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_A=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        {
          "payload_ref": "P257_a"
        },
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        2,
        1,
        2
      ],
      "expected": "First256 chars identical; only char257 differs. Actual B oracle first; if source changed normal timestamp then target must do likewise."
    },
    {
      "label": "BOUNDARY_RAW_REQUEST_C",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_C=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_C=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        {
          "payload_ref": "P257_a"
        },
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        2,
        1,
        2
      ],
      "expected": "First256 chars identical; only char257 differs. Actual B oracle first; if source changed normal timestamp then target must do likewise."
    },
    {
      "label": "BOUNDARY_RAW_REQUEST_B",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_B=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_B=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        {
          "payload_ref": "P257_a"
        },
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        2,
        1,
        2
      ],
      "expected": "First256 chars identical; only char257 differs. Actual B oracle first; if source changed normal timestamp then target must do likewise."
    },
    {
      "label": "BOUNDARY_QRCODE_PAYLOAD",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET QRCODE_PAYLOAD=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET QRCODE_PAYLOAD=? WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        {
          "payload_ref": "P257_a"
        },
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        2,
        1,
        2
      ],
      "expected": "First256 chars identical; only char257 differs. Actual B oracle first; if source changed normal timestamp then target must do likewise."
    },
    {
      "label": "NONNULL_SELF_RAW_REQUEST_A",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_A=RAW_REQUEST_A WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_A=RAW_REQUEST_A WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        2
      ],
      "expected": "SOURCE_ORACLE_REQUIRED; preserve full bytes. Do not extrapolate bound same-value test to expression self."
    },
    {
      "label": "NONNULL_SELF_RAW_REQUEST_C",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_C=RAW_REQUEST_C WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_C=RAW_REQUEST_C WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        2
      ],
      "expected": "SOURCE_ORACLE_REQUIRED; preserve full bytes. Do not extrapolate bound same-value test to expression self."
    },
    {
      "label": "NONNULL_SELF_RAW_REQUEST_B",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET RAW_REQUEST_B=RAW_REQUEST_B WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET RAW_REQUEST_B=RAW_REQUEST_B WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        2
      ],
      "expected": "SOURCE_ORACLE_REQUIRED; preserve full bytes. Do not extrapolate bound same-value test to expression self."
    },
    {
      "label": "NONNULL_SELF_QRCODE_PAYLOAD",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET QRCODE_PAYLOAD=QRCODE_PAYLOAD WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET QRCODE_PAYLOAD=QRCODE_PAYLOAD WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        2
      ],
      "expected": "SOURCE_ORACLE_REQUIRED; preserve full bytes. Do not extrapolate bound same-value test to expression self."
    },
    {
      "label": "ALL26_SELF_NONNULL_CLOBS",
      "SQL_B": "UPDATE cdx_ppfull261011_s2 SET ID=ID,SOURCE=SOURCE,DEVICE_ORDER_NO=DEVICE_ORDER_NO,MACHID=MACHID,EQUIPMENT_ID=EQUIPMENT_ID,RESTAURANT_ID=RESTAURANT_ID,TRACKNO=TRACKNO,GOODS_NAME=GOODS_NAME,PRICE=PRICE,CHANNELID=CHANNELID,PREPAY_STATUS=PREPAY_STATUS,MEAL_ORDER_ID=MEAL_ORDER_ID,MEAL_ORDER_NO=MEAL_ORDER_NO,USER_ID=USER_ID,SHIP_STATUS=SHIP_STATUS,ERRINFO=ERRINFO,RAW_REQUEST_A=RAW_REQUEST_A,RAW_REQUEST_C=RAW_REQUEST_C,RAW_REQUEST_B=RAW_REQUEST_B,QRCODE_PAYLOAD=QRCODE_PAYLOAD,EXPIRE_TIME=EXPIRE_TIME,PAY_TIME=PAY_TIME,SHIP_TIME=SHIP_TIME,CREATE_TIME=CREATE_TIME,CREATE_BY=CREATE_BY,UPDATE_BY=UPDATE_BY WHERE ID=? AND DEVICE_ORDER_NO=?",
      "SQL_C": "UPDATE ZHCT_APP.CDX_PPFULL261011_S2 SET ID=ID,SOURCE=SOURCE,DEVICE_ORDER_NO=DEVICE_ORDER_NO,MACHID=MACHID,EQUIPMENT_ID=EQUIPMENT_ID,RESTAURANT_ID=RESTAURANT_ID,TRACKNO=TRACKNO,GOODS_NAME=GOODS_NAME,PRICE=PRICE,CHANNELID=CHANNELID,PREPAY_STATUS=PREPAY_STATUS,MEAL_ORDER_ID=MEAL_ORDER_ID,MEAL_ORDER_NO=MEAL_ORDER_NO,USER_ID=USER_ID,SHIP_STATUS=SHIP_STATUS,ERRINFO=ERRINFO,RAW_REQUEST_A=RAW_REQUEST_A,RAW_REQUEST_C=RAW_REQUEST_C,RAW_REQUEST_B=RAW_REQUEST_B,QRCODE_PAYLOAD=QRCODE_PAYLOAD,EXPIRE_TIME=EXPIRE_TIME,PAY_TIME=PAY_TIME,SHIP_TIME=SHIP_TIME,CREATE_TIME=CREATE_TIME,CREATE_BY=CREATE_BY,UPDATE_BY=UPDATE_BY WHERE ID=? AND DEVICE_ORDER_NO=?",
      "binds": [
        1,
        "CDXPPFULL11_ORDER"
      ],
      "PDO_types": [
        1,
        2
      ],
      "expected": "SOURCE_ORACLE_REQUIRED. Staff ALL76_SELF remains open regardless of this result."
    }
  ],
  "proposed_budget": {
    "B": {
      "INSERT": 1,
      "UPDATE": 18,
      "DDL": 2,
      "readonly_ceiling": 120,
      "HTTP": 0
    },
    "C": {
      "INSERT": 1,
      "UPDATE": 18,
      "DDL": 4,
      "readonly_ceiling": 150,
      "HTTP": 0
    },
    "business_writes": 0
  },
  "limitations": [
    "27-column trigger shadow, not complete business schema acceptance",
    "B LIKE preserves actual source indices/identity; C explicit ID test intentionally does not reproduce identity/4 secondary indices",
    "No date precision ALTER repetition:5 shadow dates sourcefsp0 from construction",
    "No replay of B12/C12 or any original old table",
    "Actual B oracle first for each nonNULL self/ALL26, not an assumed noop"
  ]
}
