如果语句里面创建表查询-Oracle-

时间:2015-09-04 14:27:03

标签: oracle

我想创建首先询问用户输入的表。然后根据输入,选择添加哪些列。

例如,如果响应为“N”,则创建包括列col1,col2,col3的表。 如果响应为“Y”,则创建表,包括列col1,col2,col3,col4,col5。

这可能吗? 如果是,请提供简单而原始的查询,以便我可以将其应用于我的案例。

谢谢,

2 个答案:

答案 0 :(得分:0)

使用SQL * Plus很简单:

sed --in-place 's/^M//g' main.py

您可以将脚本存储为文件,并使用@filename从SQL * Plus调用它。

答案 1 :(得分:0)

CREATE OR REPLACE FUNCTION tmp_custom_DDL( p_input  VARCHAR2 IN, p_resp CHAR IN OUT)  RETURN CHAR
AS

v_str    VARCHAR2(4000);

IF p_resp = 'Y' THEN 

v_str := 'col1 varchar2(10), col2 varchar2(10), col3 varchar2(10)';

ELSE v_str := 'col1 varchar2(10), col2 varchar2(10), col3 varchar2(10), col4 varchar2(10), col4 varchar2(10) ' ; 

EXECUTE IMMEDIATE v_comm_1  || v_str  || v_comm2;
--v_comm_1  is the first half of create table command till the specified cols
--v_comm_2 is the rest of the create table command


RETURN p_resp;

END;

这只是一个快速草案,修复了一些词法错误和缺少的定义:)(这是第一步)