如何创建一个 table 具有与另一个系统提供给我的视图相同的属性?

How can I create a table with same attributes of a View another system delivers me?

一个外部系统授予我的系统一个名为 V_EXT 的视图,以便我可以对其进行选择,阅读其所有内容:

SELECT *
FROM V_EXT;

这个视图有很多字段,我想在我的系统中创建一个空的 table,它具有与这个视图完全相同的属性(相同的名称和相同的类型)。有没有办法做到这一点,而不用简单地从我收到的内容中猜测每个属性是什么?

我正在使用 Oracle SQL 开发人员。

有代码。

create table objects_copy2
 as
  select *
    from all_objects
    where 1=2; -- add this line if you want NO data, otherwise you get all the data too

对于 SQL 开发人员来说,这实际上更难。您需要找到查询中使用的基础 OBJECT(s)。然后查找这些数据类型,并手动构建您的 CREATE TABLE 语句。

CREATE TABLE AS SELECT 是必经之路。 (Docs)

请注意存在一些限制,例如,这不会从视图中使用的源 table 中获取身份列定义。

一个例子: