我需要一些关于Oracle的命令的帮助。
现在我没有接近那个数据库所以我不能尝试任何东西。
我会把你的答案写在纸上,然后再试一试,让你知道。
现在有一些信息:
通过使用c# connection将OLE连接到数据库,需要执行哪些命令才能获得:
主键每个表:
我已经为主键获得了SQL,但我不知道如何执行它来更改转换内容
"SELECT a.owner, a.TABLE_NAME, b.column_name
FROM all_constraints a, all_cons_columns b
WHERE a.constraint_type='P'
AND a.constraint_name=b.constraint_name
AND a.TABLE_NAME = 'CASTING'"
编辑:删除了如果存在(我将得到所有的表和前端表,我将添加删除表查询)
但是它是如何在甲骨文上的(现在我会保留它,明天早上9-11小时后我会告诉你,我会更新这个话题)
我如何检查某些列是否is_identity
--意思是auto_increment
当我发现它时,如何检查
**"IDENT_SEED ,IDENT_INCR ,IDENT_CURRENT"**
最后一件事:
我怎么能从每一张桌子上得到这样的信息:
column_name, data_type, is_nullable, character_maximum_length
提前感谢你的帮助
发布于 2014-12-06 20:58:34
select count(*)
from all_tables
where table_name = 'YOUR_TABLE_NAME_IN_UPPERCASE';
如果表不存在,则返回0(或者您的用户对此表没有任何特权)
select column_name, data_type, nullable, data_length, data_scale, data_precision
from all_tab_columns where table_name = 'YOUR_TABLE_NAME_IN_UPPERCASE';
提供表列的详细信息。
在Oracle中,没有身份列这样的东西,因为它的版本小于12c。你在用12c吗?
发布于 2014-12-08 03:59:22
谢谢你们的项目工作。版本为11.42,因此没有自动集成和任何工作,完善所有列信息工作,主键工作
发布于 2014-12-06 20:59:33
Oracle没有使用if exists table
子句删除表的任何方法。作为最佳实践,只需删除表并忽略错误,然后使用
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE mytable';
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
如果你想得到通知,那就用,
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE mytable';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
关于表的详细信息,查询ALL_TAB_COLUMNS
。
而且,甲骨文的IDENTITY COLUMNS
是可用的。你的版本是哪一种?
查询,select * from v$version
知道您的数据库版本。
查询all_tab_identity_cols
以获取IDENTITY COLUMNS
详细信息。
SELECT table_name,
column_name,
generation_type,
identity_options
FROM all_tab_identity_cols
WHERE owner = 'TEST'
ORDER BY 1, 2;
按照OP关于表的PRIMARY KEY
的请求编辑PRIMARY KEY
。
在all_constraints
中,列constraint_type
将有主键的值P
。因此,在查询中,将where constraint_type = 'P'
放在
你的询问似乎没问题。执行就行了。
https://stackoverflow.com/questions/27336294
复制相似问题