ORACLE 11g - COLDFUSION 9 - REF CURSOR - С хотя бы одной переменной.
Как в ColdFusion с переменными получить хранимую процедуру Oracle для возврата значений?
Мы пробовали нескольковещи, мы можем получить хранимую процедуру для возврата набора результатов, если мы не передаем переменные, но мы не можем получить их, когда передаем переменные.
Мы знаем, как это сделать, вызывая MS SQL.
Спасибо за любую помощь
PS Мы слышали, что это невозможно с текущим драйвером Oracle. Есть ли другой драйвер Oracle?
Из того, что я читал в Интернете, я нахожусьдумая, что это не просто проблема кодирования.Надеюсь, я ошибаюсь по этому поводу.Это всего лишь пример, над которым я работал в качестве доказательства концепции, чтобы я мог начать создавать их все.Я могу заставить его работать, если я не использую ref cusor.
Ошибка выполнения запроса к базе данных.
[Macromedia] [Oracle JDBC Driver] Указанный тип SQL не поддерживается этим драйвером.
Ошибка произошла в D: \ apache \ htdocs \ test \ index.cfm: строка 86
84: 85: 86: 87: 88:
CF Вызов процедуры
<cfstoredproc procedure="BWNGDBADEV.PACK_REFCURSOR.GETALL" datasource="mydatasourcename" returncode="no">
<cfprocparam type="InOut" cfsqltype="CF_SQL_INTEGER" variable="pPERSONNELID" value="4" null="No">
<cfprocparam type="Out" cfsqltype="CF_SQL_REFCURSOR" variable="AnyVarName">
<!--- *** This name ties StoredProc results to the query below *** --->
<cfprocresult name="myvar">
</cfstoredproc>
Пакет Oracle
CREATE OR REPLACE
PACKAGE PACK_REFCURSOR
AS
TYPE EMP_TableRows
IS
REF
CURSOR
RETURN BWNGDBADEV.PER_PERSONNEL%ROWTYPE;
PROCEDURE GETALL(
pPERSONNELID IN OUT BWNGDBADEV.PER_PERSONNEL.PERSONNELID%type,
OUTTABLE OUT EMP_TableRows);
END PACK_REFCURSOR ;
/
CREATE OR REPLACE
PACKAGE BODY PACK_REFCURSOR
AS
PROCEDURE GETALL(
pPERSONNELID IN OUT BWNGDBADEV.PER_PERSONNEL.PERSONNELID%type,
OUTTABLE OUT EMP_TableRows)
IS
BEGIN
-- implicit cursor is opened - no close needed ***
OPEN OUTTABLE FOR
SELECT *
FROM BWNGDBADEV.PER_PERSONNEL
WHERE PERSONNELID = pPERSONNELID;
END GETALL ;
END PACK_REFCURSOR ;
/