Create table in the select statement.

Hello Oracle gurus,

I am creating a table using select * in the other table.

The procedure I am following is as follows: -.

I have a temporary table whose signature is on delete rows commit.

I insert records into this table.

When I select * from temporary_table, perm_table, I get a few lines.

so I try to create a result_table the use of this

CREATE TABLE result_table
AS SELECT * FROM temporary_table, perm_table;

I see the created array, but the number of records in 0. Please can someone explain where the validation is performed while the sequence in this query occurs.

Thank you

Published by: user10696492 on November 10, 2009 08:47

Hello

When you perform DDL like CREATE TABLE implicit validation takes place just before and just after the statement.

Concerning
Peter

Tags: Database

Similar Questions

  • Is it possible to use the record type or a PL/SQL table in the Select statement

    Hi all

    My requirement is that.
    I want to write a query and write a function, function, I want to return multiple columns at the same time in a Select statement.
    I select the return values in the Select no statement in a PL/SQL block.
    Is it possible to use the PL/SQL Table or Variable of Type record, or any other method in the statement Select?

    Please help me understand the solution.


    Kind regards

    830960 wrote:
    do we like it?

    In general, Yes, if the function is a function table, you can do something like:

    select  t.col1,
            t.col2,
            f.col1,
            f.col2,
            f.col3
      from  table_name t,
               table(some_table_function(param1,...paramN)) f
    /
    

    SY.

  • Creating a table using the Select statement of the physical layer

    Hello

    I use 10G, and I have the sub query in my physical layer. I chose the type of Table as Select and gave the SQL below. When I say the number of lines of update updates lines 93, that is correct, but does not show me the columns, or when I say display data, it does not show me the data, please see if I'm doing something worng. Thanks for your time and your help.

    Select (select program_id, project, actvty_id, commitment_date, row_number() over (partition by order project by commitment_date desc) as rnk project, actvty_id, program_id, commitment_date)
    of project_detail) a
    where rnk = 1

    Yes, create columns individually and click view data, you'll be able to get data

  • How to use the Type of Oracle Table values in the Select statement.

    Hello

    I get the initial set of values in the Table of Type Records of the Oracle and want to use the list of values in the Select statement.

    For example, try something like the following:

    TYPE t_record () IS RENDERING
    ID TABLEA.ID%type,
    NO TABLEA.NO%type

    );
    v_record t_record;
    T_table TYPE IS the v_record TABLE % TYPE;
    v_table t_table;

    -Code to fill the values of v_table here.

    SELECT ID, NO, COLLECT in BULK IN < some other table variabes here > FROM TABLEA
    WHERE ID IN (i) v_table USER.USER;

    I want to know how to use the Type of Oracle Table values in the Select statement.

    Something like this:

    create or replace type t_record as  object (
    id number,
    no number
    )
    /
    
    CREATE or replace type t_table AS TABLE OF t_record;
    /
    
    set serveroutput on
    declare
    
      v_table t_table := t_table();
      v_t1 t_table := t_table();
    
    begin
    
      v_table.extend(1);
      v_table(1).ID := 1;
      v_table(1).No := 10;
    
      v_table.extend(1);
      v_table(2).ID := 2;
      v_table(2).ID := 20;
    
      SELEC t_record (ID,NO) BULK COLLECT INTO v_t1
      from TableA
      FROM TABLEA
      WHERE ID IN (select t.ID from table(v_Table) t);
    
      for i in 1..v_t1.count loop
        dbms_output.put_line(v_t1(i).ID);
        dbms_output.put_line(v_t1(i).No);
      end loop;
    end;
    /
    

    No test!

    P;

    Published by: bluefrog on March 5, 2010 17:08

  • How to use the variable instead of the table name in the select statement of procedure

    I have a procedure with a select statement with dynamic from clause. How can I use instead of the name of the table variable.

    create or replace procedure scc_chemical_analysis
    is
    v_table_name varchar2 (100);
    Start

    declare
    cursor c1 is select * from v_table_name; -This is the variable name. How can I use it in the select statement.
    .
    .
    .
    .



    end;

    Hello

    something like that.

      1  declare
      2     vSQLString      VARCHAR2(32000);
      3  pTableName varchar2(1000):='EMP';
      4  BEGIN
      5     vSQLSTRING :=
      6  'SELECT ''x'' FROM ' || DBMS_ASSERT.sql_object_name(pTableName) || ' WHERE rownum<=1 ';
      7     EXECUTE IMMEDIATE vSQLSTRING;
      8* END;
    SQL> /
    
    PL/SQL procedure successfully completed.
    
  • function() nested in the select statement

    Oracle 11g. Try to nest a function within the select statement.  Goal: get the average customer rating for each of the qualified user.

    Select user_name, f_get_avg_cust_rating() "Notation.

    of u, OTHER_TABLES o TAB_USER

    where u.id = o.id and another condition matched;

    How Oracle would deal with the sql.  Is it

    (1) first of all display records based on the where clause, then call the f_get_avg_cust_rating() for each of the selected records OR

    (2) for the analysis in tables, the f_get_avg_cust_rating() will be called for each record met?

    Thank you

    Scott

    Words of Frank, I created two functions with dbms_output and used a function in where clause in select another function. See the bottom of the unit tests. Everyone says, where first clause then select...

    -Where function clause

    SQL > CREATE or REPLACE FUNCTION ret_empno

    2 RETURN NUMBER

    3 AS

    4 BEGIN

    5 DBMS_OUTPUT. Put_line (' where Clause Function');

    6 RETURN 7839;

    7 END;

    8.

    The function is created.

    -Select the function

    SQL > CREATE or REPLACE FUNCTION ret_1

    2 RETURN NUMBER

    3 AS

    4 BEGIN

    5 DBMS_OUTPUT. Put_line ('Select function');

    6 RETURN 1;

    7 END;

    8.

    The function is created.

    SQL > SELECT empno, ename,ret_1

    2 FROM emp

    3. WHERE empno = ret_empno;

    EMPNO, ENAME RET_1

    ---------- ---------- ----------

    7839 KING 1

    Where the function Clause

    Select the function

  • Pivot will not get result in the select statement

    This is the version of oracle 11g R2 on windows details 7 OS

    CREATE TABLE OTBOOKINGDETAILS
    (EMPNO VARCHAR2 (10 BYTE),
    DATE OF OTBOOKEDDATE,
    NUMBER (5.0) DAY OF THE WEEK.
    DAYCEILINGHRS VARCHAR2 (10 BYTE));

    Here is the data

    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 MARCH 2013', 1,' 09:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 APRIL 2013', 2' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 MAY 2013', 3,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 JUNE 2013', 4' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 JULY 2013', 5,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 AUGUST 2013', 6,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 SEPTEMBER 2013', 7,' 00:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 MARCH 2013', 1,' 09:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 APRIL 2013', 2' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 MAY 2013', 3,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 JUNE 2013', 4,' 02:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 JULY 2013', 5,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 AUGUST 2013', 6,' 04:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (102 ', 3 SEPTEMBER 2013', 7' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 OCTOBER 2013', 1,' 00:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 NOVEMBER 2013', 2' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 3 DECEMBER 2013', 3,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 13 MARCH 2013', 4,' 04:45 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 14 MARCH 2013', 5,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 15 MARCH 2013', 6,' 01:00 ');
    INSERT INTO OTBOOKINGDETAILS VALUES (101 ', 16 MARCH 2013', 7' 01:00 ');

    Here, I want to Dayceiling hours below the output using pivot

    EMPNO OTBOOKEDDATE DAY1_HRS DAY2_HRS DAY3_HRS DAY4_HRS DAY5_HRS DAY6_HRS DAY7_HRS
    101 03/03/2013 09:00 01:00 01:00 01:00 01:00 01:00 00:00
    102 03/03/2013 09:00 01:00 01:00 02:00 01:00 04:00 01:00
    101 03/10/2013 00:00 01:00 01:00 04:45 01:00 01:00 01:00

    ChakravarthyDBA wrote:
    I need to include the pivot query in the select statement

    Can' are you use PIVOT here since you do not know from the start what values OTBOOKEDDATE. So use:

    select  empno,
            otbookeddate - weekday + 1 otbookeddate,
            max(
                case weekday
                  when 1 then dayceilinghrs
                end
               ) day1_hrs,
            max(
                case weekday
                  when 2 then dayceilinghrs
                end
               ) day2_hrs,
            max(
                case weekday
                  when 3 then dayceilinghrs
                end
               ) day3_hrs,
            max(
                case weekday
                  when 4 then dayceilinghrs
                end
               ) day4_hrs,
            max(
                case weekday
                  when 5 then dayceilinghrs
                end
               ) day5_hrs,
            max(
                case weekday
                  when 6 then dayceilinghrs
                end
               ) day6_hrs,
            max(
                case weekday
                  when 7 then dayceilinghrs
                end
               ) day7_hrs
      from  otbookingdetails
      group by empno,
               otbookeddate - weekday + 1
      order by otbookeddate,
               empno
    /
    
    EMPNO      OTBOOKEDDA DAY1_HRS   DAY2_HRS   DAY3_HRS   DAY4_HRS   DAY5_HRS   DAY6_HRS   DAY7_HRS
    ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
    101        03-03-2013 09:00      01:00      01:00      01:00      01:00      01:00      00:00
    102        03-03-2013 09:00      01:00      01:00      02:00      01:00      04:00      01:00
    101        10-03-2013 00:00      01:00      01:00      04:45      01:00      01:00      01:00
    
    SQL> 
    

    SY.

  • SHOW_LOV need to pass a parameter for the select statement

    Hello

    I have a requirement that there is only a drop down list but the display of the list should be based on the certern parameter.

    I have a table (id, type, description). The select statement for dropdown I need is

    SELECT id, description of the table where type = & input_param.

    Can someone help please!

    create a field and create value in the list select id, description from table1 where col =: block1.item

  • Can we call a procedure in the select statement?

    Can we call a procedure in the select statement?

    Hello

    Raghu_appsdba wrote:
    Can we call a procedure in the select statement?

    # You can call functions, but not procedures.

    If the procedure does not change the State of the database (for example, it isn't updated all tables), then you can wrap it in a function, or re - write function.

    Here is an example of wrapping.

    CREATE OR REPLACE FUNCTION fun_x (in_txt IN VARCHAR2)
    RETURN  VARCHAR2
    IS
    BEGIN
            proc_y (in_txt);
            RETURN  in_txt
    END     fun_x;
    
  • MV without ROWID specified in the select statement

    Hello

    Can we create a ROWID specified in the statement select the DDL with out MV when we create a MV with 2 tables join.
    It comes to my requirement but, apparently, this is not possible. Are there opportunities to achieve.

    Thank you
    Pramod

    Pramod Garre wrote:
    Can we create a MV that can be updated FAST with the ROWID specified in the select statement in the DDL when we create a MV with 2 tables join.

    As mentioned previous you are best to check the documentation. Here is an excerpt from the documentation on this topic (emphasis added):

    Limitation to fast refresh materialized views with joins only

    Definition of materialized views with joints only and no aggregate queries have the following restrictions on fast refresh:

    * All 'General Restrictions on Fast Refresh' restrictions.
    * They cannot have aggregate or GROUP BY clauses.
    * The ROWID of all tables in the list must appear in the SELECT list of the query.*
    >

    For example, if the problem is that when you describe the view you have ROWID and you don't want them there, then I suggest to implement a regular vision on top of the materialized view that hides these columns.

    HTH!

  • table in the sql statement

    Hi all

    I just created a function that returns a TABLE;

    I am grateful if some body guide me how to display the values in the table at the call of my sqlplus as function

    Select * from func_avg_cost() of double;

    its fine when you return a single value of work. But I'm back a table to retrieve the value from the table in the sql statement

    Thank you!

    now, I must return two numbers function. as possible through table.

    which is also possible with a simple object:

    SQL> create or replace type my_number_typ as object (n1 number, n2 number)
    /
    Type created.
    
    SQL> create or replace function my_numbers (n1 number := 0, n2 number := 0)
       return my_number_typ
    as
    begin
       return my_number_typ (n1, n2);
    end my_numbers;
    /
    Function created.
    
    SQL> select   my_numbers (2, 3) from dual
    /
    MY_NUMBERS(2,3)
    --------------------------------------------------
    (2; 3)
    1 row selected.
    
    SQL> select   my_numbers (sal, deptno) my_numbers  from   emp where   empno = 7788
    /
    MY_NUMBERS
    --------------------------------------------------
    (3000; 20)
    1 row selected.
    
    SQL> select   my_numbers (sal, deptno).n1 sal, my_numbers (sal, deptno).n2 deptno
      from   emp where   empno = 7788
    /
           SAL     DEPTNO
    ---------- ----------
          3000         20
    1 row selected.
    
  • Update using a function in the select statement

    Hello

    Is it possible to do the follwing.

    I tabele and a custom function, the custome service will update the column (amount) of the table based on the value of going through the function of the select statement.

    SELECT id, stock, where an id = get_update (id);

    Now


    Get_update function will return the same id I'm passing and update the column amount to a value in the
    table a.

    When I run the satament selection I have the updated data in the column amount in my first executtion, but if execute the same statement, again, I see the changes reflected. is it possible to get data updates to the first performance himself.

    the function is of type PRAGMA AUTONOMOUS_TRANSACTION

    Concerning

    Indeed a strange requirement and probably not the way to go in a production environment. But anyway is a way to achieve your goal

    SQL> create table a
    as
       select   12 id, 500 amount from dual
       union all
       select   13 id, 600 amount from dual
    /
    Table created.
    
    SQL> create or replace type a_typ as object (id number, amount number)
    /
    Type created.
    
    SQL> create or replace function get_id (pid number)
       return a_typ
    is
       pragma autonomous_transaction;
       l_a_typ   a_typ := a_typ (null, null);
    begin
          update   a
             set   amount = 800
           where   id = pid
       returning   id, amount      into   l_a_typ.id, l_a_typ.amount;
    
       commit;
    
       return l_a_typ;
    end get_id;
    /
    Function created.
    
    SQL> select   id, d.a_typ.amount amount
      from   a, (select get_id (13) a_typ from dual) d
     where   id = d.a_typ.id
    /
            ID     AMOUNT
    ---------- ----------
            13        800
    1 row selected.
    
  • validation for each 1,000 records to be inserted in the select statement

    Hi, I have the following INSERTION in the SELECT statement.
    The SELECT statement (who joined) data fo about 6 crores. I need to insert this data into another table.

    Please suggest me the best way to do it.
    I use the INSERT in the SELECT statement, but I want to use the statement commit for each 1,000 records.

    How can I do this...
    insert into emp_dept_master 
     select e.ename ,d.dname ,e.empno ,e.empno ,e.sal 
       from emp e , dept d
      where e.deptno = d.deptno       ------ how to use commit for every 1000 records .
    Thank you

    Method 4 is the best

    You could combine method 3 and 1 (without dynamic SQL)

    Method 2 is the less optimal solution from the list.

  • Creating table in the schema has with the user B and granting permissions to the user C

    Hello, I have a problem fun - we have a large table which requires a batch to make millions of updates, and he needs to finish more quickly. It takes several hours as an update, but a select create table did the same thing in about a minute. Yay! Then we just delete the old table and rename the new table to the former, rebuild all the index and grant select/insert/update/delete permissions to another user who needs access... and there is the problem, Oracle said insufficient privs.

    We have A figure, which is the owner of the table, userid B who done all the stuff of application batch and userid C which performs inserts for a process of middleware. None of them are actual users, of course. We want that user B to do the ETG, rename, rebuild and re-grant of the authorisation of the index. But user B apparently cannot grant permissions on objects in the schema A to user C, even if B has created the table and has the role DBA (not ideal, I know)!

    What's really crazy is that there is no sense unique user b can grant permissions to user C, which is to:

    grant select any table USER c;
    grant insert any table USER c;
    grant update any table USER c;
    Grant delete any table USER c;

    It seems really perverse can create tables in diagram A and even grant C privs "whole table" that user B, but may not grant privs specifically on this object in the schema A, even with DBA privs. I must be missing something... right?

    Yes. By default, the stored procedures are stored procedures from DEFINER rights. If A is the owner of a stored procedure, this stored procedure can do whatever A enjoys the privileges to directly. If A grants B privileges RUN this stored procedure, when B calls the stored procedure, the procedure runs with the privileges.

    I agree point stew, however, re-creating objects in Oracle is generally a bad idea and a TRUNCATE with one insert direct-path, possibly combined with the deactivation and the rebuilding of the index would be more appropriate than a DEC. If you're going to stick with this Assignment, however, that really do in a stored procedure owned by A while B has no need to CREATE ANY TABLE.

    Justin

  • Creating tables with the same Structure and with the remote control FOR the parts database

    Hello

    I have a remote DB connection and a local DB connection in my system
    I want to create the same Table and data from my DB remote to Local Connection DB connection.

    Please tell me how to do this?

    CREATE TABLE LOCAL_TABLE AS SELECT * FROM REMOTE_TABLE@TNS_ALIAS;

Maybe you are looking for