Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql teradata中的动态选择表_Sql_Oracle_Teradata_Teradata Sql Assistant - Fatal编程技术网

Sql teradata中的动态选择表

Sql teradata中的动态选择表,sql,oracle,teradata,teradata-sql-assistant,Sql,Oracle,Teradata,Teradata Sql Assistant,我是teradata新手,我正在尝试在teradata中创建动态表。我已经创建了这段代码,但是有很多错误。谢谢你的帮助 当前I手动编码: select a_num,id from tablename union select a_num,id from tablename_1912 union select a_num,id from tablename_2001 注:19122001年应该是动态的 期望值: select a_num,id from tablename union sele

我是teradata新手,我正在尝试在teradata中创建动态表。我已经创建了这段代码,但是有很多错误。谢谢你的帮助

当前I手动编码:

select a_num,id from tablename union
select a_num,id from tablename_1912 union
select a_num,id from tablename_2001
注:19122001年应该是动态的

期望值:

select a_num,id from tablename union 
select a_num,id from tablename_1912(dynamically change) union    
select a_num,id from tablename_2001(dynamically change)
create procedure test_sp()
Create volatile table test(Account Number varchar(50),Id varchar(30) on commit preserve rows;

Begin 

Declare SQLL varchar(max);
Declare Schema_name_1 varchar(20);
Declare Schema_name_2 varchar(20);
Declare table_name varchar(30);
Declare underscore varhcar(10),
Declare 3_months_previous varchar(50);
Declare 2_months_previous varchar(50);

set schema_name_1 = 'Some_Schema_name1';
set schema_name_2 = 'Some_Schema_name2';
set table_name = 'test';
set 3_months_previous = substr(add_months(current_date,-3),3,2)||substr(add_months(current_date,-3),6,2);
set 2_months_previous = substr(add_months(current_date,-2),3,2)||substr(add_months(current_date,-2),6,2);
set underscore  = '_';
set SQLL = 'select A_Num,''11''+ from '+Schema_name_1+table_name+ ' union all '+
           'select B_Num,''22''+ from '+Schema_name_2+table_name+ ' union all '+
           'select A_Num,''23''+ from '+Schema_name_1+table_name+underscore+3_months_previous ' union all '+
           'select B_Num,''24''+ from '+Schema_name_2+table_name+underscore+2_months_previous ;

End;

insert into test
call test_sp();

select * from test t join another_Table c on t.a_num=c.p_num
我的代码:

select a_num,id from tablename union 
select a_num,id from tablename_1912(dynamically change) union    
select a_num,id from tablename_2001(dynamically change)
create procedure test_sp()
Create volatile table test(Account Number varchar(50),Id varchar(30) on commit preserve rows;

Begin 

Declare SQLL varchar(max);
Declare Schema_name_1 varchar(20);
Declare Schema_name_2 varchar(20);
Declare table_name varchar(30);
Declare underscore varhcar(10),
Declare 3_months_previous varchar(50);
Declare 2_months_previous varchar(50);

set schema_name_1 = 'Some_Schema_name1';
set schema_name_2 = 'Some_Schema_name2';
set table_name = 'test';
set 3_months_previous = substr(add_months(current_date,-3),3,2)||substr(add_months(current_date,-3),6,2);
set 2_months_previous = substr(add_months(current_date,-2),3,2)||substr(add_months(current_date,-2),6,2);
set underscore  = '_';
set SQLL = 'select A_Num,''11''+ from '+Schema_name_1+table_name+ ' union all '+
           'select B_Num,''22''+ from '+Schema_name_2+table_name+ ' union all '+
           'select A_Num,''23''+ from '+Schema_name_1+table_name+underscore+3_months_previous ' union all '+
           'select B_Num,''24''+ from '+Schema_name_2+table_name+underscore+2_months_previous ;

End;

insert into test
call test_sp();

select * from test t join another_Table c on t.a_num=c.p_num

我很难理解你的问题。您的示例代码中有多个问题。关于Teradata中的动态SQL有很多问题。如果这些对您没有帮助,请尝试重写您的问题,使其更清晰。嗨,安德鲁,我正在尝试获取动态表名。如何在teradata中获取动态表名。我想我的标题搞错了。您的代码中有几个输入错误:
create produre
账号varcahr(50)
,并且您的存储过程的结构看起来不太正确。请看一看样本SP的手册(),修复您的打字错误,并请重新发布错误信息。嗨,Ravioli,我做了一个更改,但似乎不起作用。我正在尝试创建动态表名并合并这些表Teradata中的字符串连接运算符是
|
而不是
+