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 中的表的主要内容,如果未能解决你的问题,请参考以下文章