标签: teradata

Teradata 中的 RowID

我需要使用 select 语句提取行 ID。类似于 oracle 的行 ID 的东西。我将如何在 Teradata 中做到这一点?我正在尝试以下查询,但它抛出错误。

select rowid,emp_id,e_name from test;

Error msg : Syntax error: ROWID not allowed.
Run Code Online (Sandbox Code Playgroud)

提前致谢。

java sql database teradata

5
推荐指数
1
解决办法
4826
查看次数

错误2616在进行计数(*)时计算期间出现数值溢出

我正在尝试select count(*)从表中进行从表的操作,由于此错误,我无法执行此操作。我不知道表中的行数。

除此以外,我没有在查询中进行任何其他聚合。

我想这与计数值有关,该计数值太大而无法存储在INTEGER中。

有什么选择?

sql teradata

5
推荐指数
1
解决办法
3万
查看次数

使用 Teradata 限制子查询中的行数

我是 Teradata 的新手,我遇到了以前使用的数据库没有的问题。基本上,我试图减少在 where 子句中的子查询中返回的行数。我以前使用 ROWNUM 函数执行此操作没有问题。

我以前的查询是这样的:

SELECT * FROM myTable
WHERE field1 = 'foo' AND field2 in(
    SELECT field2 FROM anotherTable
    WHERE field3 = 'bar' AND ROWNUM<100);
Run Code Online (Sandbox Code Playgroud)

因为我不能在 TD 中使用 ROWNUM,所以我一直在寻找等效的函数,或者至少可以找到我想要的函数,即使它们不完全等效。我找到并尝试了:ROW_NUMBER、TOP 和 SAMPLE。

我尝试过 ROW_NUMBER() 但 Teradata 不允许在 WHERE 子句中使用分析函数。我尝试了 TOP N,但子查询不支持此选项。我尝试了 SAMPLE N,但子查询也不支持它。

所以...我不得不承认我现在有点卡住了,想知道是否有任何解决方案可以让我使用 Teradata 限制子查询中返回的行数,这与我所做的非常相似到现在?此外,如果没有,如何以不同的方式构建查询以适当地与 Teradata 一起使用?

谢谢!

sql subquery limit teradata

5
推荐指数
1
解决办法
2万
查看次数

如何查找具有与特定模式匹配的列名的所有表/视图

如何查找列名与模式匹配的所有表或视图.

模式是一个简单的LIKE %abcd%模式,而不是正则表达式.

查询或查询应返回视图和表.

teradata

5
推荐指数
1
解决办法
2万
查看次数

我可以将 nodejs 与 teradata 连接(任何 nodejs npm 用于此)?

无论如何我可以将teradata连接到nodejs服务器吗?我有一个用例,我需要在我的其余 API 中提取 teradata 信息。

我可以使用这个npm 包吗?

jdbc teradata node.js npm

5
推荐指数
1
解决办法
3600
查看次数

需要在分区中选择最新的5条记录

我被困在一个要求中.这可能很简单,但我没有通过.

我有一个审计表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张桌子.

谢谢你的帮助.

此致,阿米特 请看突出显示

sql teradata

5
推荐指数
1
解决办法
62
查看次数

使用EXPLAIN命令验证CREATE TABLE DDL的语法

我有一些创建表脚本,我需要在我的应用程序中预先验证.我可以想到两种方式:

  1. 使用该脚本创建表并立即使用DROP表.
  2. 使用EXPLAIN命令查找语法错误而不创建它.

我发现第二种方式更有效率.因此,我使用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)

我想事先得到精度溢出错误.

sql-server oracle db2 teradata netezza

5
推荐指数
1
解决办法
1614
查看次数

选择聚合函数和所有其他列

如何以方便的方式选择表中的所有列和聚合函数?

即说我有一个有 100 列的表,我想发送以下内容

SELECT Max(Columns 44), ALL OTHER COLUMNS
FROM zz
Group by ALL OTHER COLUMNS 
Run Code Online (Sandbox Code Playgroud)

谢谢!

mysql sql aggregate teradata

5
推荐指数
1
解决办法
5193
查看次数

由 Concat Teradata 分组

我的表有问题,我想使用 group by 连接字符串字段。我这里有这种情况:

USER | TEXT
A    | 'hello'
A    | 'by'
B    | 'hi'
B    | '9'
B    | 'city'
Run Code Online (Sandbox Code Playgroud)

我想得到这个结果:

USER | TEXT
A    | 'hello by'
B    | 'hi 9 city'
Run Code Online (Sandbox Code Playgroud)

sql teradata

5
推荐指数
1
解决办法
4051
查看次数

使用 SQLAlchemy 执行查询时避免参数绑定

我正在使用 SQLALchemy 在 Teradata 上执行查询。我执行的查询之一是用于替换存储过程的 DDL 语句:

REPLACE PROCEDURE DEV_MIGRATION_TOOL.UNIT_TEST_NEW_STORED_PROCEDURE()
UNIT_TEST_NEW_STORED_PROCEDURE:
BEGIN
    DECLARE V_VAR VARCHAR(50);
    SELECT 'Hello World!'
    INTO :V_VAR;
END;
Run Code Online (Sandbox Code Playgroud)

此 SQL 语句被分配给一个变量query,并由 SQLALchemy 使用会话执行方法执行:

def execute_sql_statement(self, query):
    """Generic method to execute a SQL statement on target environment."""
    self.target_environment.db_session.execute(query)
    self.target_environment.db_session.commit()
Run Code Online (Sandbox Code Playgroud)

:V_VAR遇到的问题是 SQLAlchemy 假设变量是一个应该随字典一起提供的参数。请参阅此处的文档:http : //docs.sqlalchemy.org/en/latest/orm/session_api.html#sqlalchemy.orm.session.Session.execute

result = session.execute("SELECT * FROM user WHERE id=:param", {"param":5})
Run Code Online (Sandbox Code Playgroud)

在当前配置中,它会触发错误消息:

2018-04-18 19:09:27,874 - migration_script - INFO - 在 UAT 环境中执行对象 DDL 语句。2018-04-18 19:09:27,875 - migration_script - ERROR - (sqlalchemy.exc.InvalidRequestError) …

python binding sqlalchemy teradata executequery

5
推荐指数
1
解决办法
3038
查看次数