我有2-3个不同的列名称,我想在整个数据库中查找并列出所有具有这些列的表.任何简单的脚本?
假设我在SQLServer中有一个名为MyTable的表
ID FirstName LastName
1 Harry Dan
2 Maria Vicente
3 Joe Martin
Run Code Online (Sandbox Code Playgroud)
现在,如果我必须在表中插入任何数据,我将简单地像这样触发Insert Query
INSERT INTO MyTable (ID, FirstName, LastName) VALUES (4, Smith, Dan);
Run Code Online (Sandbox Code Playgroud)
但是,如果我事先不知道列名,我只知道表名.那么有没有办法在运行时获取表的列名?
我有以下表格:
UserPrivileges:
+--------+------+------+------+
| UserID | Col1 | Col2 | Col3 |
+--------+------+------+------+
| 1 | 0 | 1 | 1 |
| 2 | 0 | 0 | 1 |
| 3 | 1 | 0 | 0 |
| 4 | 1 | 1 | 0 |
+--------+------+------+------+
Data:
+--------+------+------+------+
| DataID | Col1 | Col2 | Col3 |
+--------+------+------+------+
| 1 | A | B | C |
| 2 | D | E | F | …Run Code Online (Sandbox Code Playgroud) 听起来很容易查询表中的列名,对吧?确实有这个问题的答案如何从Oracle中的表中获取列名?
主要问题是该表属于另一个用户.我的用户只是用于集成,我没有任何数据库权限.
所以我可以做一些查询: SELECT * FROM anotherUser.THE_TABLE;
但是像SELECT * FROM USER_TAB_COLUMNS返回没有行的东西.
也许我可以在all_tab_columns上创建查询,还有没有程序的另一个更快的选项吗?
*这是一个oracle数据库!
我有一个问题:
select vrec, valnum, valte from val_tb where
recd in (select recd from rectb where setd = 17)
AND (vid = 3 OR vid = 26 OR vid = 28);
Run Code Online (Sandbox Code Playgroud)
对于上面的结果,我得到:
vrec valnum valte
98945823 NULL Total
98945823 NULL 06001
98945823 16.57 NULL
98945824 NULL Total
98945824 NULL 06005
98945824 0.36 NULL
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
98945823 06001 Total 16.57
98945824 06005 Total 0.36
Run Code Online (Sandbox Code Playgroud)
即结合vrec的结果.
是否可以使用Oracle SQL执行此操作?
我想从teradata系统表(如dbc.columns)中获取实际的列类型.
此表具有列columntype但它不提供实际的数据类型.
我可以得到输出
select type(columnname) from table
output: varchar2(20)
Run Code Online (Sandbox Code Playgroud)
但是有1000个表和50000列.请建议一些查询,它可以从元数据本身给我实际列列类型
这只是一个懒惰的想法.我有一个大约9列名称的表.有什么办法可以使用SQL语句只返回列名吗?通常的方法是写出我的列名
SELECT * FROM tableName;
Run Code Online (Sandbox Code Playgroud)
声明但是想知道我是否可以使用SQL语句获取列名.
任何想法,将不胜感激.
谢谢!