如何在Oracle PL/SQL中使用变量
我试图在Oracle中使用date变量,我写了一个简单的语句,但它不起作用,有人能帮我解决这个问题吗,thx 坦率的 错误消息: 试试这个如何在Oracle PL/SQL中使用变量,oracle,plsql,Oracle,Plsql,我试图在Oracle中使用date变量,我写了一个简单的语句,但它不起作用,有人能帮我解决这个问题吗,thx 坦率的 错误消息: 试试这个 declare StartDate Date := to_date('03/11/2017', 'dd/mm/yyyy'); n_count integer; begin select cnt INTO n_count from ( SELECT REQUESTED_DATE.CALENDAR_DATE, Count( di
declare
StartDate Date := to_date('03/11/2017', 'dd/mm/yyyy');
n_count integer;
begin
select cnt INTO n_count from
(
SELECT
REQUESTED_DATE.CALENDAR_DATE,
Count( distinct HEADER_FACT.SALE_ID) as cnt
FROM
FD_DW.DATE_DIM REQUESTED_DATE,
FD_DW.SALES_HEADER_FACT HEADER_FACT
WHERE
REQUESTED_DATE.DATE_KEY = HEADER_FACT.REQUESTED_DATE_KEY and
REQUESTED_DATE.CALENDAR_DATE = StartDate
GROUP BY REQUESTED_DATE.CALENDAR_DATE
)
;
end;
我不确定你能否在同一条语句中读写同一个变量。这真的是你的意图吗?你想用这个变量做什么?顺便说一句,错误是,您无法将两列中的值提取到单个变量中。您试图将两列中的值压缩到一个变量中,从而导致错误。变量的数量必须与
SELECT
语句中指定的列(文字)的数量相同。如果我只有只读访问权限,那么我就不能写入变量,对吗?非常感谢,仍然不适合我,因为我只有对数据库的只读访问权限???
declare
StartDate Date := to_date('03/11/2017', 'dd/mm/yyyy');
n_count integer;
begin
select cnt INTO n_count from
(
SELECT
REQUESTED_DATE.CALENDAR_DATE,
Count( distinct HEADER_FACT.SALE_ID) as cnt
FROM
FD_DW.DATE_DIM REQUESTED_DATE,
FD_DW.SALES_HEADER_FACT HEADER_FACT
WHERE
REQUESTED_DATE.DATE_KEY = HEADER_FACT.REQUESTED_DATE_KEY and
REQUESTED_DATE.CALENDAR_DATE = StartDate
GROUP BY REQUESTED_DATE.CALENDAR_DATE
)
;
end;