Teradata有一个有用的视图dbc.tables,可用于查询对象.我用它来查看RequestText视图中的成功,但程序似乎编译有点不同.
当我查看RequestText一个过程(TableKind P)时,我得到的是这样的:
ALTER PROCEDURE '468137'xn.'546321987654321345646556213165468654654654'xn COMPILE /* mydb.procedurename */;
Run Code Online (Sandbox Code Playgroud)
这是对存储在别处的实际RequestText的引用吗?我怎么做到的?
我想实际用SQL查询它,而不是将其转储到文本文件中.
原因是因为我需要对它运行LIKE语句来搜索对特定表名的引用.将它转储到文本文件然后手动搜索文本文件是不方便的.
我正在尝试select count(*)从表中进行从表的操作,由于此错误,我无法执行此操作。我不知道表中的行数。
除此以外,我没有在查询中进行任何其他聚合。
我想这与计数值有关,该计数值太大而无法存储在INTEGER中。
有什么选择?
如何查找列名与模式匹配的所有表或视图.
模式是一个简单的LIKE %abcd%模式,而不是正则表达式.
查询或查询应返回视图和表.
我有一张桌子Handset.有一些重复的imei,我必须只选择一个imei,每个都有这些要求:
IMEI MSISDN REVENUE DATA_CAPABLE
35622200000001 4282336700001 1000 Y
35622200000001 4282336700002 2000 N
35622200000002 4282336700003 3000 Y
35622200000003 4282336700004 4000 Y
35622200000004 4282336700005 5000 Y
35622200000005 4282336700006 6000 Y
35622200000005 4282336700007 7000 Y
35622200000006 4282336700008 8000 Y
35622200000007 4282336700009 9000 N
35622200000007 4282336700010 1100 N
Run Code Online (Sandbox Code Playgroud)
CASE WHEN and HAVING COUNT(*)>1对于这种情况我很困惑.大师的任何帮助真的很感激
我被困在一个要求中.这可能很简单,但我没有通过.
我有一个审计表Audit_Info,它捕获所有表的审计信息.表可以在同一个工作日期多次运行.我的要求是获取最近5个月的每个月的最新业务日期记录.可能会发生一个特定月份的表未运行.
表就像
table_name business_date src_rec tgt_rec del_rec load_timestamp
abc 25/10/2015 10 10 0 23/01/2016 03:06:56
abc 25/10/2015 10 10 0 23/01/2016 05:23:34
abc 07/09/2015 10 10 0 23/10/2015 05:37:30
abc 05/08/2015 10 10 0 23/09/2015 05:23:34
abc 15/06/2015 10 10 0 23/07/2015 05:23:34
abc 25/04/2015 10 10 0 23/05/2015 05:23:34
Run Code Online (Sandbox Code Playgroud)
类似的还有其他表格.我需要5张桌子.
谢谢你的帮助.
我有一些创建表脚本,我需要在我的应用程序中预先验证.我可以想到两种方式:
我发现第二种方式更有效率.因此,我使用Explain命令验证了CREATE TABLE DDL.
Teradata数据
Explain <CREATE TABLE DDL>
Run Code Online (Sandbox Code Playgroud)
神谕
EXPLAIN PLAN FOR <CREATE TABLE DDL>
Run Code Online (Sandbox Code Playgroud)
SQL SERVER
找不到存储过程'解释'.SQLState:S00062 ErrorCode:2812
Netezza公司
^找到"CREATE"(在char 18)期望
DELETE' orINSERT'或SELECT' orUPDATE'或'WITH'
DB2
错误:DB2 SQL错误:SQLCODE = -104,SQLSTATE = 42601,SQLERRMC = TABLE; EXPLAIN CREATE; JOIN,DRIVER = 4.14.111 SQLState:42601 ErrorCode:-104
还有其他更好的方法来验证Create Table DDL吗?
有没有通用的方法来处理流行的RDBMS?
如果说明是唯一可用的解决方案,那么如何为SQL Server,Netezza和DB2执行解释?
这里验证意味着检查语法(存储大小,精度,范围违规,保留关键字作为表或列名称等)
例如,查询像 -
create table abc (c1 decimal(555,44))
Run Code Online (Sandbox Code Playgroud)
我想事先得到精度溢出错误.
表stack_trace包含以下列:
val - "in"/"push"操作插入的值或"out"/"pop"操作的NULL.
目标是在每个时间点(i)找到堆栈顶部的值.
例如
(NULL值在此表示为空格)
数据:
i op val
-- -- --
1 I A
2 I B
3 O
4 I C
5 O
6 O
Run Code Online (Sandbox Code Playgroud)
要求的结果:
i top_of_stack_val
-- ----------------
1 A
2 B
3 A
4 C
5 A
6
Run Code Online (Sandbox Code Playgroud)
我们有一个范围数据集,其中每个范围都有一个起点,终点和一个值.
create table ranges
(
range_start int not null
,range_end int not null
,range_val char(1) not null
)
;
Run Code Online (Sandbox Code Playgroud)
范围可以包含另一个范围或跟随另一个范围,但不能等于另一个范围或与另一个范围相交.
这些是范围之间的有效关系:
(1) (2) (3) (4)
--------- --------- --------- -------- -----------
--- --- ---
Run Code Online (Sandbox Code Playgroud)
这些关系无效:
(5) (6)
------- --------
------- --------
Run Code Online (Sandbox Code Playgroud)
我们的初始范围,如果以图形方式显示,可能看起来像这样(字母代表range_val):
AAAAAAAA BBCCCCCCC
DDE F GGGGG
H IIII
J
Run Code Online (Sandbox Code Playgroud)
目标是获取初始范围集并在以下规则下创建新集:
包含的范围将覆盖包含范围的相应子范围.
当以图形方式呈现时,请求的结果可能看起来像这样
ADDHAAAF BIIJIGCCC
Run Code Online (Sandbox Code Playgroud)
AAAAAAAAAAAAAAAAAAAAAAAAAAAA BBBB CCCCCCCCCCCCCCCCCCCCCCCCC …Run Code Online (Sandbox Code Playgroud) Null查询配置单元外部表时,值显示为"\ N".
下面是sqoop导入脚本:
sqoop import -libjars /usr/lib/sqoop/lib/tdgssconfig.jar,/usr/lib/sqoop/lib/terajdbc4.jar -Dmapred.job.queue.name = xxxxxx\--connect jdbc:teradata:// xxx .xx.xxx.xx/DATABASE = $ db,LOGMECH = LDAP --connection-manager org.apache.sqoop.teradata.TeradataConnManager\--username $ user --password $ pwd --query"
从$ db.xxx中选择col1,col2,col3
其中\ $ CONDITIONS"\ - null-string'\ N' - null-non-string'\ N'\ --fields-terminated-by'\t'--num-mappers 6\--split-by job_number\--delete-target-dir\--target-dir $ hdfs_loc
请告知应对脚本进行哪些更改,以便在查询外部配置单元表时将空值显示为空.