EntityFramework Oracle Insert procedure with result
Posted: Thu 23 Oct 2014 09:50
I have a basic use case : My TFILTER entity use a sequence and I want to use a procedure for insert that retrieve the new id.
I've follow your guidance for EF & procedure mapping but I can't make it work :
I can't map any output result :
On the Store Procedure Mapping dialog I can select my insert procedure but
Row Affected Parameters ComboBox is Empty
Result Column Bindings Grid can't be update
Here is my procedure :
CREATE OR REPLACE PROCEDURE EUROGAS.TFILTER__INSERT(
IN_STATUS VARCHAR2,
IN_NAME VARCHAR2,
IN_TABLE_NAME VARCHAR2,
IN_USER_ID VARCHAR2,
IN_TIMESTAMP DATE,
IN_FILTER_CONDITION VARCHAR2,
IN_COLUMN_DISPLAY_LIST VARCHAR2,
IN_CREATED_USER_ID VARCHAR2,
IN_PERSONAL_FLAG VARCHAR2,
IN_MULTI_TS_GROUP_FLAG VARCHAR2,
IN_UNIT_TYPE_CODE_ID NUMBER,
IN_DEFAULT_FLAG VARCHAR2,
OUT_CURSOR OUT NUMBER(9,0))
IS
P_FILTER_ID NUMBER(9,0);
BEGIN
SELECT EUROGAS.FILTER_ID.NEXTVAL INTO P_FILTER_ID FROM DUAL;
INSERT INTO EUROGAS.TFILTER (
FILTER_ID, STATUS, NAME, TABLE_NAME, USER_ID, TIMESTAMP, FILTER_CONDITION, COLUMN_DISPLAY_LIST, CREATED_USER_ID, PERSONAL_FLAG, MULTI_TS_GROUP_FLAG, UNIT_TYPE_CODE_ID, DEFAULT_FLAG
)
VALUES (P_FILTER_ID, IN_STATUS, IN_NAME, IN_TABLE_NAME, IN_USER_ID, IN_TIMESTAMP, IN_FILTER_CONDITION, IN_COLUMN_DISPLAY_LIST, IN_CREATED_USER_ID, IN_PERSONAL_FLAG, IN_MULTI_TS_GROUP_FLAG, IN_UNIT_TYPE_CODE_ID, IN_DEFAULT_FLAG);
OPEN OUT_CURSOR FOR SELECT P_FILTER_ID AS "OUT_FILTER_ID"
FROM DUAL;
END;
I've follow your guidance for EF & procedure mapping but I can't make it work :
I can't map any output result :
On the Store Procedure Mapping dialog I can select my insert procedure but
Row Affected Parameters ComboBox is Empty
Result Column Bindings Grid can't be update
Here is my procedure :
CREATE OR REPLACE PROCEDURE EUROGAS.TFILTER__INSERT(
IN_STATUS VARCHAR2,
IN_NAME VARCHAR2,
IN_TABLE_NAME VARCHAR2,
IN_USER_ID VARCHAR2,
IN_TIMESTAMP DATE,
IN_FILTER_CONDITION VARCHAR2,
IN_COLUMN_DISPLAY_LIST VARCHAR2,
IN_CREATED_USER_ID VARCHAR2,
IN_PERSONAL_FLAG VARCHAR2,
IN_MULTI_TS_GROUP_FLAG VARCHAR2,
IN_UNIT_TYPE_CODE_ID NUMBER,
IN_DEFAULT_FLAG VARCHAR2,
OUT_CURSOR OUT NUMBER(9,0))
IS
P_FILTER_ID NUMBER(9,0);
BEGIN
SELECT EUROGAS.FILTER_ID.NEXTVAL INTO P_FILTER_ID FROM DUAL;
INSERT INTO EUROGAS.TFILTER (
FILTER_ID, STATUS, NAME, TABLE_NAME, USER_ID, TIMESTAMP, FILTER_CONDITION, COLUMN_DISPLAY_LIST, CREATED_USER_ID, PERSONAL_FLAG, MULTI_TS_GROUP_FLAG, UNIT_TYPE_CODE_ID, DEFAULT_FLAG
)
VALUES (P_FILTER_ID, IN_STATUS, IN_NAME, IN_TABLE_NAME, IN_USER_ID, IN_TIMESTAMP, IN_FILTER_CONDITION, IN_COLUMN_DISPLAY_LIST, IN_CREATED_USER_ID, IN_PERSONAL_FLAG, IN_MULTI_TS_GROUP_FLAG, IN_UNIT_TYPE_CODE_ID, IN_DEFAULT_FLAG);
OPEN OUT_CURSOR FOR SELECT P_FILTER_ID AS "OUT_FILTER_ID"
FROM DUAL;
END;