refs #731: fix autonomous vector example storage
This commit is contained in:
@@ -52,6 +52,10 @@ END;
|
|||||||
SELECT sg_qa_vector_context(:question, 3) FROM dual;
|
SELECT sg_qa_vector_context(:question, 3) FROM dual;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`SG_QA_VECTOR_STORE`는 SQL `SELECT` 표현식으로 호출되는 저장 함수이므로,
|
||||||
|
함수 내부의 INSERT는 자율 트랜잭션으로 수행하고 성공 시 commit, 실패 시 rollback
|
||||||
|
한다. 이 처리가 없으면 Oracle은 `ORA-14551`로 DML을 거절한다.
|
||||||
|
|
||||||
## Apply
|
## Apply
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ CREATE OR REPLACE FUNCTION sg_qa_vector_store(
|
|||||||
) RETURN NUMBER
|
) RETURN NUMBER
|
||||||
AUTHID DEFINER
|
AUTHID DEFINER
|
||||||
IS
|
IS
|
||||||
|
PRAGMA AUTONOMOUS_TRANSACTION;
|
||||||
v_input CLOB;
|
v_input CLOB;
|
||||||
v_embedding VECTOR;
|
v_embedding VECTOR;
|
||||||
v_example_id NUMBER;
|
v_example_id NUMBER;
|
||||||
@@ -116,7 +117,12 @@ BEGIN
|
|||||||
p_question, p_answer_sql, p_answer, v_input, v_embedding, 'cohere.embed-v4.0'
|
p_question, p_answer_sql, p_answer, v_input, v_embedding, 'cohere.embed-v4.0'
|
||||||
) RETURNING example_id INTO v_example_id;
|
) RETURNING example_id INTO v_example_id;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
RETURN v_example_id;
|
RETURN v_example_id;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
ROLLBACK;
|
||||||
|
RAISE;
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user