Oracle版本:11.2.0.2
我有一个表格ABC,它有n列,其中我需要COUNT个状态,年龄和类型列,作为OUT参数提供给其他应用程序。
我的其他应用程序(Web应用程序)将显示如下:
状态10
AGE 05
20型
其中10,05,20是来自表ABC的COUNT值,我需要将其传递给Web应用程序。
答案 0 :(得分:0)
听起来你想要给我们一个SELECT语句:
SELECT COUNT(DISTINCT STATUS) AS STATUS_COUNT,
COUNT(DISTINCT AGE) AS AGE_COUNT,
COUNT(DISTINCT TYPE) AS TYPE_COUNT
FROM YOUR_TABLE
或者,如果您只想计算值,请使用
SELECT COUNT(STATUS) AS STATUS_COUNT,
COUNT(AGE) AS AGE_COUNT,
COUNT(TYPE) AS TYPE_COUNT
FROM YOUR_TABLE
祝你好运。
答案 1 :(得分:0)
在这种情况下,可以采用两种方法来实现目标。
1)使用ref光标来计算计数
2)使用标量变量来表示参数。
由于我没有工作区,请原谅任何语法错误。
--1) Using refcursor
CREATE OR REPLACE PROCEDURE test_out_ref(
p_ref_out OUT sys_refcursor )
AS
BEGIN
OPEN p_ref_out FOR
SELECT COUNT(DISTINCT STATUS) STATUS_COUNT,
COUNT(DISTINCT AGE) AGE_COUNT,
COUNT(DISTINCT TYPE) TYPE_COUNT
FROM YOUR_TABLE ;
END;
--2 nd approach may be just passing the count value to scalar variables as OUT param
CREATE OR REPLACE PROCEDURE test_out_ref(
p_status_cnt_out OUT NUMBER,
p_age_cnt_out OUT NUMBER,
p_type_cnt_out OUT NUMBER)
AS
BEGIN
SELECT COUNT(DISTINCT STATUS) STATUS_COUNT,
COUNT(DISTINCT AGE) AGE_COUNT,
COUNT(DISTINCT TYPE) TYPE_COUNT
INTO
p_status_cnt_out,
p_age_cnt_out,
p_type_cnt_out
FROM YOUR_TABLE ;
END;