如何查询一个oracle数据库中,是否有某个表的某一列包含某个值

如何查询一个oracle数据库中,是否有某个表的某一列包含某个值,第1张

1、看用户的表的信息如同marliuang所说,不再赘述。当然了你用A登录后也可以用命令(selecttnamefromtab;)查看。2、显示乱码是因为oracle中的回收站(recyclebin)的缘故,为了防止用户误删除,oracle引入了回收站这一概念,你可以使用命令:purgerecyclebin;(用户A登录)或者purgedbarecyclebin;(dba用户登录)这样就看不到这个表了。当然了你在删除表的时候直接写“droptabletablenamepurge;”也是一样的。

select count() from dba_tab_columns where owner='' and table_name='';
table_name=''处的填写的table_name必须得是大写的

在PLSQL中使用EXECUTE IMMEDIATE语句处理动态SQL语句。
语法如下:
EXECUTE IMMEDIATE dynamic_string
[INTO {define_variable[, define_variable] | record}]
[USING [IN | OUT | IN OUT] bind_argument
[, [IN | OUT | IN OUT] bind_argument]]
[{RETURNING | RETURN} INTO bind_argument[, bind_argument]];
dynamic_string是代表一条SQL语句或一个PL/SQL块的字符串表达式,
define_variable是用于存放被选出的字段值的变量
record是用户定义或%ROWTYPE类型的记录,用来存放被选出的行记录。
输入bind_argument参数是一个表达式,它的值将被传入(IN模式)或传出(OUT模式)或先传入再传出(IN OUT模式)到动态SQL语句或是PL/SQL块中。一个输出bind_argument参数就是一个能保存动态SQL返回值的变量。
除了多行查询外,动态字符串可以包含任何SQL语句(不含终结符)或PL/SQL块(含终结符)。
字符串中可以包括用于参数绑定的占位符。
但是,不可以使用绑定参数为动态SQL传递模式对象。
在用于单行查询时,INTO子句要指明用于存放检索值的变量或记录。
对于查询检索出来的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。
在用于DML *** 作时,RETURNING INTO子句要指明用于存放返回值的变量或记录。
对于DML语句返回的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。
我们可以把所有的绑定参数放到USING子句中。默认的参数模式是IN。
对于含有RETURNING子句的DML语句来说,我们可以把OUT参数放到RETURNING INTO之后,并且不用指定它们的参数模式,因为默认就是OUT。
如果我们既使用了USING又使用RETURNING INTO,那么,USING子句中就只能包含IN模式的参数了。
运行时,动态字符串中的绑定参数会替换相对应的占位符。所以,每个占位符必须与USING子句和/或RETURNING INTO子句中的一个绑定参数对应。我们可以使用数字、字符和字符串作为绑定参数,但不能使用布尔类型(TRUE,FALSE和NULL)。要把空值传递给动态字符串,我们就必须使用工作区。
动态SQL支持所有的SQL类型。所以,定义变量和绑定变量都可以是集合、LOB,对象类型实例和引用。
作为一项规则,动态SQL是不支持PL/SQL特有的类型的。这样,它就不能使用布尔型或索引表。
我们可以重复为绑定变量指定新值执行动态SQL语句。但是,每次都会消耗很多资源,因为EXECUTE IMMEDIATE在每次执行之前都需要对动态字符串进行预处理。

方法和详细的 *** 作步骤如下:

1、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤。

2、第二步,执行完上面的 *** 作之后,查询有多少个数据表,见下图,转到下面的步骤。

3、第三步,执行完上面的 *** 作之后,在TEST的开头编写一个查询表的脚本,每个表中的记录数,代码见下图,转到下面的步骤。

4、第四步,执行完上面的 *** 作之后,执行sql,在输出窗口中,可以看到每个表的输出,见下图。这样,就解决了这个问题了。

1、创建测试表,

create table test_cols(id varchar2(20),remark varchar2(20),ex_filed1 varchar2(20),ex_filed2 varchar2(20));

2、编写sql,查看系统视图,可以看到该用户下所有表的字段信息,select from user_tab_cols;

3、编写sql,查询刚创建的表,字段信息,select from user_tab_cols t where table_name = 'TEST_COLS';

4、编写sql,查询该表的字段数,这样对于字段较多的表,结果更明显;

 select count(distinct column_name) from user_tab_cols t where table_name = 'TEST_COLS'

1、Oracle数据库:

select    from ‘数据库的名字’  where Table_Name='你要查询表的名字';

2、mysql查询表所有列名,并用逗号分隔:

SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",")

FROM information_schemaCOLUMNS

WHERE TABLE_SCHEMA = '数据库的名字' AND TABLE_NAME = '你要查询表的名字'

扩展资料

Oracle数据库其他查询语句:

1、查询所有表名:

select ttable_name from‘数据库的名字’;

2、查询所有字段名:

select tcolumn_name from ‘数据库的名字’;

3、查询指定表的所有字段名:

select tcolumn_name from ‘数据库的名字’ where ttable_name = '你要查询表的名字';

4、查询指定表的所有字段名和字段说明:

select tcolumn_name, tcolumn_name from‘数据库的名字’where ttable_name = '你要查询表的名字';


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10318071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存