pl/sql 中的表

Posted

技术标签:

【中文标题】pl/sql 中的表【英文标题】:tables in pl/sql 【发布时间】:2015-09-29 05:49:02 【问题描述】:

我有下表,我需要创建一个新的空表并使用pl/sql编写一个程序,将下表中的所有数据复制到空表中:

  PRODUCT_ID   PRICE
  ---------- ----------
     1         50
     2         100
     3         3000
 

请帮忙

【问题讨论】:

不需要存储过程:create table new_table as select * from existing_table @a_horse_with_no_name:你跑得很快…… 我在 pl/sql 中需要这个 .. 是同一个语句吗?开始...结束 我在一个过程中需要同样的语句,试图添加一个变量但是没有用? 我在 oracle pl/sql 中有下表你的表在哪里? 【参考方案1】:

在存储过程中,您不能以正常方式创建表,您需要从字符串执行。命令:执行"create table example_table ( PRODUCT_ID number,PRICE number)';执行"(string to create a table)"

插入它在执行时唯一可用的。执行“(字符串插入)”

【讨论】:

【参考方案2】:

可能不需要程序。您要查找的代码类似于

 create table example_table
(
PRODUCT_ID number,
PRICE number
);
insert into example_table (PRODUCT_ID, PRICE)
select PRODUCT_ID, PRICE from original_table

【讨论】:

这在 pl/sql 中有效吗??【参考方案3】:

此示例根据您的要求,复制并更改列名。它适用于 Oracle 11g 的有效 PL/SQL

CREATE TABLE a_horse_with_no_name
( 
  col_horse_id numeric(10) not null,
  col_horse_name varchar2(50) not null,
  col_horse_breed varchar2(50),
  CONSTRAINT horse_pk PRIMARY KEY (col_horse_id)
);

【讨论】:

这个例子是根据你的要求,复制它并更改列名。其有效的 PL SQL。甲骨文 11 克【参考方案4】:

我知道您想在 PL/SQL 过程中创建一个表。您可以使用普通的 Oracle 语法来执行此操作,例如:创建表等...但您需要将其与 EXECUTE IMMEDIATE 语句如:EXECUTE IMMEDIATE 'create table as select * from employee';

https://docs.oracle.com/cd/B12037_01/appdev.101/b10807/13_elems017.htm

在 EXECUTE IMMEDIATE 之后,您必须在 ' ' 中指定字符串(撇号)您也可以使用 varchar2 变量(例如与其他变量连接);

【讨论】:

以上是关于pl/sql 中的表的主要内容,如果未能解决你的问题,请参考以下文章

循环oracle pl/sql中的表名

将修改后的表中的游标用于相同的 PL/SQL 过程

ORACLE PL/SQL 中的表值函数

从 Oracle PL/SQL 中的表生成 json 文件

如何做一个函数来从 pl/sql 中的表中返回行类型?

如何使用 pl/sql 中的游标将多列数据插入包含单列的表中?