このクエリは 1 行を返します。
SELECT col1, col2 FROM table1 WHERE col1 = :column1;
しかし、これは0行を更新します:
UPDATE table1 SET col2 = :column2 WHERE col1 = :column1;
COMMIT;
この制約を追加して col1 を主キーとして設定しましたが、修正されませんでした。
ALTER TABLE table1 ADD CONSTRAINT col1_pk PRIMARY KEY (col1);
私はSQL Developerからこれを試していますが、行が更新されない理由はありますか?
編集:
col1はVARCHAR2(32 BYTE) NOT NULL
col2はCLOB NOT NULL
編集 2 : テスト ケース、select 文と update 文で :var1 を 0011223344556677 に設定します。
CREATE TABLE MY_TABLE
( COL1 VARCHAR2(32 BYTE) NOT NULL ENABLE,
COL2 CLOB,
CONSTRAINT "MY_TABLE_PK" PRIMARY KEY ("COL1")
)
INSERT INTO MY_TABLE (COL1, COL2) VALUES ('0011223344556677', '1434407992143440799214344079921434407992');
SELECT * FROM MY_TABLE WHERE COL1 = :var1;
UPDATE MY_TABLE SET COL2 = 'test' WHERE COL1 = :var1;
COMMIT;