Jump to content
Fórum Script Brasil
  • 0

Criar Tabela - Oracle


Fabio C Silva

Question

Bom dia,

Gostaria de criar uma tabela no Oracle com um nome + a data (YYYYMM) corrente.

Ex: TABELA_TESTE_201110

Poderia criar na mão, todo mês mas gostaria que esse processo fosse automático.

Tentei de várias formas, mas não obtive sucesso.

CREATE TABLE TABELA_TESTE_ || SELECT TO_CHAR(SYSDATE, 'YYYYMM') FROM DUAL

AS

SELECT * FROM TABELA_MODELO

WHERE 1=2;

Nem sei se isso é possível, mas se alguém puder ajudar eu agradeço.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bom, pessoal...

Consegui.

Criei uma procedure para tratar os dados em variáveis.

Não sei se dei muita volta para chegar no resultado, mas segue abaixo caso alguém precise.

CREATE OR REPLACE PROCEDURE CRIAR_TABELA IS

DT_ANO VARCHAR2(15);

DT_MES VARCHAR2(15);

DT_ANO_MES VARCHAR2(15);

VAR_MES VARCHAR2(15);

BEGIN

SELECT TO_CHAR(SYSDATE, 'YYYY') INTO DT_ANO FROM DUAL;

SELECT TO_CHAR(SYSDATE, 'MM') -1 INTO VAR_MES FROM DUAL;

CASE VAR_MES

WHEN 1 THEN

DT_MES := '01';

WHEN 2 THEN

DT_MES := '02';

WHEN 3 THEN

DT_MES := '03';

WHEN 4 THEN

DT_MES := '04';

WHEN 5 THEN

DT_MES := '05';

WHEN 6 THEN

DT_MES := '06';

WHEN 7 THEN

DT_MES := '07';

WHEN 8 THEN

DT_MES := '08';

WHEN 9 THEN

DT_MES := '09';

ELSE

DT_MES := VAR_MES;

END CASE;

DT_ANO_MES := DT_ANO || DT_MES;

EXECUTE IMMEDIATE 'CREATE TABLE TABELA_TESTE_A_' || DT_ANO_MES || ' AS SELECT * FROM TABELA_MODELO WHERE 1=2';

END CRIAR_TABELA;

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...