Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL动态列_Sql_Oracle_Plsql_Schema - Fatal编程技术网

Oracle SQL动态列

Oracle SQL动态列,sql,oracle,plsql,schema,Sql,Oracle,Plsql,Schema,我想根据用户活动创建具有展开列的表。 如果我有表Project、Worker和Worker_项目,则如下所示: 工人联合会项目: 工作人员名称,项目名称列表作为列。 每次添加项目时,我都想更改表并添加列, 但问题是PL SQL不支持一些静态SQL,包括Alter 我还有什么其他解决方案?方法错误。表列表正确,但方法错误 create table WorkerProject ( WorkerId int not null references Workers(WorkerId),

我想根据用户活动创建具有展开列的表。 如果我有表Project、Worker和Worker_项目,则如下所示:

工人联合会项目: 工作人员名称,项目名称列表作为列。 每次添加项目时,我都想更改表并添加列, 但问题是PL SQL不支持一些静态SQL,包括Alter


我还有什么其他解决方案?

方法错误。表列表正确,但方法错误

create table WorkerProject (
    WorkerId int not null references Workers(WorkerId),
    ProjectId int not null references Projects(ProjectId)
);
这是基本思想。您并没有真正给出表的布局,但是您的想法是添加一个新行,而不是一个新列。这称为连接表

您还可以向表中添加其他信息。例如,工人被分配的日期,谁进行了分配,等等


我应该指出,Oracle是一个功能强大的数据库,它提供了其他解决方案,如嵌套表或JSON编码。不过,首先,您应该掌握如何以SQLish方式存储关系数据库的基础知识。如果您有特定的需求,那么还有其他功能可以提供帮助。

错误的方法。表列表正确,但方法错误

create table WorkerProject (
    WorkerId int not null references Workers(WorkerId),
    ProjectId int not null references Projects(ProjectId)
);
这是基本思想。您并没有真正给出表的布局,但是您的想法是添加一个新行,而不是一个新列。这称为连接表

您还可以向表中添加其他信息。例如,工人被分配的日期,谁进行了分配,等等

我应该指出,Oracle是一个功能强大的数据库,它提供了其他解决方案,如嵌套表或JSON编码。不过,首先,您应该掌握如何以SQLish方式存储关系数据库的基础知识。如果您有特定的需求,那么还有其他功能可以帮助您