如何在 Oracle 中将提取的值从 datetime 转换为 char?
How to convert extracted value from datetime to char in Oracle?
我需要在 Oracle PL/SQL 中将日期时间中提取的年份转换为 char 为 char。我怎样才能做到这一点?
代码给了我 PLS-00306: wrong number or types of arguments tips 'TO_CHAR'
create or replace PROCEDURE PrintCustomersKPI IS
v_average_duration NUMBER;
v_tab CHAR := chr(9);
BEGIN
FOR v_year IN (SELECT DISTINCT EXTRACT(year FROM purchaseday) as PurchaseYear FROM Purchase ORDER BY PurchaseYear DESC)
LOOP
dbms_output.put_line('YEAR: ' || TO_CHAR(v_year, 'yyyy'));
END LOOP;
END;
EXEC PrintCustomersKPI;
就是这样
TO_CHAR(v_year.PurchaseYear)
没有别的。
您也可以尝试以下方法。打印结果时必须使用别名列
create or replace PROCEDURE PrintCustomersKPI IS
v_average_duration NUMBER;
v_tab CHAR := chr(9);
BEGIN
FOR v_year IN (SELECT DISTINCT TO_CHAR(purchaseday, 'YYYY') as PurchaseYear FROM Purchase ORDER BY PurchaseYear DESC)
LOOP
dbms_output.put_line('YEAR: ' || v_year.PurchaseYear );
END LOOP;
END;
EXEC PrintCustomersKPI;
我需要在 Oracle PL/SQL 中将日期时间中提取的年份转换为 char 为 char。我怎样才能做到这一点?
代码给了我 PLS-00306: wrong number or types of arguments tips 'TO_CHAR'
create or replace PROCEDURE PrintCustomersKPI IS
v_average_duration NUMBER;
v_tab CHAR := chr(9);
BEGIN
FOR v_year IN (SELECT DISTINCT EXTRACT(year FROM purchaseday) as PurchaseYear FROM Purchase ORDER BY PurchaseYear DESC)
LOOP
dbms_output.put_line('YEAR: ' || TO_CHAR(v_year, 'yyyy'));
END LOOP;
END;
EXEC PrintCustomersKPI;
就是这样
TO_CHAR(v_year.PurchaseYear)
没有别的。
您也可以尝试以下方法。打印结果时必须使用别名列
create or replace PROCEDURE PrintCustomersKPI IS
v_average_duration NUMBER;
v_tab CHAR := chr(9);
BEGIN
FOR v_year IN (SELECT DISTINCT TO_CHAR(purchaseday, 'YYYY') as PurchaseYear FROM Purchase ORDER BY PurchaseYear DESC)
LOOP
dbms_output.put_line('YEAR: ' || v_year.PurchaseYear );
END LOOP;
END;
EXEC PrintCustomersKPI;