使用Pl/SQL语言进行动态查询

问题描述 投票:0回答:1

如何使用动态 PL/SQL 查询获取

dd/mm/yyyy
中的日期格式..?

我尝试了很多选择,但没有任何效果。任何人都可以建议正确的方法以以下格式获取出生日期(

dd/mm/yyyy
)

V_DYNAMICSQL := 'select to_char(a.dat_of_birth)
from genmst_customer a'

Execute immediate v_dynamicsql;
oracle date plsql date-formatting
1个回答
0
投票

to_char
本身是不够的 - 您还应该提供格式模型

样本表:

SQL> desc genmst_customer
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ENAME                                              VARCHAR2(10)
 DAT_OF_BIRTH                                       DATE

SQL> select * from genmst_customer;

ENAME      DAT_OF_BI
---------- ---------
CLARK      09-JUN-81
KING       17-NOV-81
MILLER     23-JAN-82

PL/SQL程序;注意第 5 行中的格式模型。我只获取一行:

SQL> set serveroutput on
SQL> declare
  2    v_dynamicsql varchar2(500);
  3    result       varchar2(20);
  4  begin
  5    v_dynamicsql := q'[select to_char(a.dat_of_birth, 'dd/mm/yyyy')]' ||
  6                     ' from genmst_customer a where rownum = 1';
  7    execute immediate v_dynamicsql into result;
  8    dbms_output.put_line('Result = ' || result);
  9  end;
 10  /
Result = 09/06/1981

PL/SQL procedure successfully completed.

SQL>
© www.soinside.com 2019 - 2024. All rights reserved.