Oracle |选择*除<column_name>

时间:2015-10-01 15:06:55

标签: sql oracle

除了两个或三个之外,如何从表中选择所有列? 我使用了超过50列的很多表,所以我不能列出列名...

我希望它有效,但它没有

SELECT(
SELECT column_name FROM all_tab_columns
WHERE table_name = <table_name>
AND column_name NOT IT (<columns_name>)
)
from <table_name>;

你能帮我吗?

2 个答案:

答案 0 :(得分:0)

您可以通过pl / sql过程动态构造查询,然后使用“execute immediate”

运行它

答案 1 :(得分:0)

我找到了一些解决方法(因为PL / SQL难以简单选择):

CREAT TABLE <tmp> AS SELECT * FROM <table_name>;
ALTER TALBE <tmp> DROP COLUMN <column_name>;
SELECT * FROM <tmp>;
DROP TALBE <tmp>;

简单查询会很有用...... 但是对于开发来说PL / SQL将更有用(通用,针对服务器等进行优化)。