Create table statement in a pl/sql procedure
Hi all.
I have a problem in Oracle 10g.
First of all I must say that I'm new in oracle 10.
I have a stored procedure in which I have the instruction "create table name_table as
select col1,col2,col3,..ecc
from table1, table2
where table1.col1 = table2.col2"
When I compile this procedure it gives me an error.
Is it changed the sintax????
Is there anyone that can help me???
Thanks all for the collaboration,
Fabrizio
A little mistake -- see it --
SQL> ed
Wrote file afiedt.buf
1 Create or replace procedure My_procedure as
2 begin
3 EXECUTE IMMEDIATE 'create table my_table(fld number(5));'
4* end;
SQL> /
Warning: Procedure created with compilation errors.
SQL>
SQL>
SQL> ed
Wrote file afiedt.buf
1 Create or replace procedure My_procedure as
2 str varchar2(200);
3 begin
4 str := 'create table my_table(fld number(5))';
5 EXECUTE IMMEDIATE(str);
6* end;
SQL> /
Procedure created.
SQL>
SQL>
SQL> Create or replace procedure My_procedure as
2 begin
3 EXECUTE IMMEDIATE 'create table my_table(fld number(5));'
4 end;
5 /
Warning: Procedure created with compilation errors.
SQL> ed
Wrote file afiedt.buf
1 Create or replace procedure My_procedure as
2 begin
3 EXECUTE IMMEDIATE 'create table my_table(fld number(5))';
4* end;
SQL> /
Procedure created.Regards.
Satyaki De.
N.B.: Please check the bolded line. You didn't write the ; outside the quotation. Otherwise, it will compile successfully.
Similar Messages
-
SQL Developer Create Table Statement to ERD Visio Diagram
I have the following Create table statement from SQL Developer and I am trying to generate an ERD Diagram using 2003 Visio. I was wondering what I need to do to convert the Create Table to an ERD Diagram Using Visio. Thanks
CREATE TABLE “TT_TEAM”.”HR_REVOKED_SECURITY_ORGS”
“ID” NUMBER NOT NULL ENABLE,
“ACAT_CODE” VARCHAR2(6 BYTE) NOT NULL ENABLE,
“APPR_SEQ_NO” NUMBER(3,0) NOT NULL ENABLE,
“USER_ID” VARCHAR2(30 BYTE) NOT NULL ENABLE,
“ACTION_IND” VARCHAR2(1 BYTE) NOT NULL ENABLE,
“ACTIVITY_DATE” DATE NOT NULL ENABLE,
“COAS_CODE” VARCHAR2(1 BYTE),
“ORGN_CODE” VARCHAR2(6 BYTE),
“POSN” VARCHAR2(6 BYTE) NOT NULL ENABLE,
“MANDATORY_APPR_IND” VARCHAR2(1 BYTE),
“APPR_POSN” VARCHAR2(6 BYTE),
“ORGN_MANAGER” VARCHAR2(6 BYTE) NOT NULL ENABLE;I'm pretty Visio is a non-Oracle product.
In the mean-time, you can easily import a DDL script file and create a relational model/diagram using SQL Developer. Use the Import feature and point to your CREATE TABLE script(s) -
Create Table or MV in PL/SQL
Hey everyone,
This is probably a really simple question, but I can't seem to create a table in a PL/SQL procedure. I have something like this:
PROCEDURE TEST_PROC IS
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE TEST_TBL AS SELECT * FROM DUAL';
END TEST_PROC;
I get a privs error when I try to execute the proc. I also tried first to create a materialized view in a very similar manner, but it also didn't work.
I did some looking and on someone's blog, they created a table using the full create table statement i.e. CREATE TABLE NAME ( COLUMN1 TYPE1, etc..);
But I want to create the table using the "AS" clause and defining a query.
Is there a specific privilege I need to be able to do this? It seems simple enough.
Thanks!
-JoeHere's what I run:
I ran the query you provided above and here are the results:
UNLIMITED TABLESPACE
CREATE TABLE
Here are the commands I run:
CREATE TABLE TEST_TABLE AS SELECT * FROM DUAL;CREATE TABLE succeeded.
DROP TABLE TEST_TABLE;DROP TABLE TEST_TABLE succeeded.
CREATE PROCEDURE TEST_PROC IS
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE TEST_TABLE AS SELECT * FROM DUAL';
END TEST_PROC;PROCEDURE TEST_PROC Compiled.
EXEC TEST_PROC; Error starting at line 1 in command:
EXEC TEST_PROC;
Error report:
ORA-01031: insufficient privileges
ORA-06512: at , line 4
ORA-06512: at line 1
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username or password
without the appropriate privilege. This error also occurs if
attempting to install a database without the necessary operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this error may occur
if the user was granted the necessary privilege at a higher label
than the current login.
*Action: Ask the database administrator to perform the operation or grant
the required privileges.
For Trusted Oracle users getting this error although granted the
the appropriate privilege at a higher label, ask the database
administrator to regrant the privilege at the appropriate label.
Does this mean I need the CREATE ANY TABLE priv?
Thanks again everyone!
-Joe
Edited by: Joe Bertram on Dec 2, 2009 12:07 PM -
How to specify tablespace for a primary key inde in create table statement
How to specify the tablespace for a primary key index in a create table statement?
Does the following statement is right?
CREATE TABLE 'GPS'||TO_CHAR(SYSDATE+1,'YYYYMMDD')
("ID" NUMBER(10,0) NOT NULL ENABLE,
"IP_ADDRESS" VARCHAR2(32 BYTE),
"EQUIPMENT_ID" VARCHAR2(32 BYTE),
"PACKET_DT" DATE,
"PACKET" VARCHAR2(255 BYTE),
"PACKET_FORMAT" VARCHAR2(32 BYTE),
"SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") TABLESPACE "INDEX_DATA"
TABLESPACE "SBM_DATA"; Thank you
Edited by: qkc on 09-Nov-2009 13:42As orafad indicated, you'll have to use the USING INDEX clause from the documentation, i.e.
SQL> ed
Wrote file afiedt.buf
1 CREATE TABLE GPS
2 ("ID" NUMBER(10,0) NOT NULL ENABLE,
3 "IP_ADDRESS" VARCHAR2(32 BYTE),
4 "EQUIPMENT_ID" VARCHAR2(32 BYTE),
5 "PACKET_DT" DATE,
6 "PACKET" VARCHAR2(255 BYTE),
7 "PACKET_FORMAT" VARCHAR2(32 BYTE),
8 "SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
9 CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") USING INDEX TABLESP
ACE "USERS"
10 )
11* TABLESPACE "USERS"
SQL> /
Table created.Justin -
How i can load excel sheet into a table in oracle through pl/sql procedure
Hi,
How i can load excel sheet into a table in oracle through pl/sql procedure or a pl/sql block. Excel sheet is saved on my c or d drive on my machine. In xls format.Depending on how big your spreadsheet is and how frequently you want to do this you might want to contruct insert statements in excel, then run these. I have done this to load a few hundred rows for a one off test on dev.
e.g. if you have values 1 and 'a' in you spread sheet and want to insert them in to table xxx col1 & 2:
| /| A | B | C
|1 |col1 |col2 |
|2 | 1|a |="insert into xxx ("&$A$1&","&B1&") values ("&A2&",'"&B2&"');"then paste the contents of colum C
insert into xxx (col1,col2) values (1,'a');into sqlplus or a script. -
Caculated column in a Create Table statement
This is my create table statement:
CREATE TABLE DTPartInv
( partinv_partnbr VARCHAR2(10) NOT NULL,
partinv_prodname VARCHAR2(25),
partinv_desc VARCHAR2(25),
partinv_manufact VARCHAR2(25),
partinv_instock INTEGER NOT NULL,
partinv_category VARCHAR2(20),
partinv_purchdate DATE,
partinv_loc VARCHAR2(15),
partinv_price NUMBER(6,2),
partinv_vendor VARCHAR2(20),
partinv_reorder INTEGER NOT NULL,
partinv_serial VARCHAR2(20),
partinv_flag as (case when partinv_instock < partinv_reorder then 'X' else 'O' end), calculated column
CONSTRAINT DTPartInv_partinv_partnbr_pk
PRIMARY KEY (partinv_partnbr)
and these are my Insert into table statements:
INSERT INTO DTPartInv VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-APR-10','DD-MON-RR'),Null,45.95,'Oracle Auto Parts',1,Null);
INSERT INTO DTPartInv VALUES('CH9260',Null,'Oil Filter','Mechanical Parts',5,'Fuild Filters',TO_DATE('15-Jan-10','DD-MON-RR'),Null,20.00,'Sink Auto P',2,Null);
INSERT INTO DTPartInv VALUES('15W40',Null,'Oil','Sink Oil',20,'Auto Fuilds',TO_DATE('10-Feb-11','DD-MON-RR'),Null,10.00,'Oracle Auto Parts',5,Null,);
INSERT INTO DTPartInv VALUES('C9262',Null,'Fuel Filter','Mechanical Parts',2,'Fuild Filters',TO_DATE('20-Oct-10','DD-MON-RR'),Null,35.95,'Sink Auto Parts',1,Null);
INSERT INTO DTPartInv VALUES('PS7716',Null,'Fuel/Water Separator','Mechanical Parts',4,'Fuild Filters',TO_DATE('09-Dec-10','DD-MON-RR'),Null,50.00,'Sink Auto Parts',1,Null);
INSERT INTO DTPartInv VALUES('800142',Null,'PPI Valve','Beink Pipes Inc',10,'Valves',TO_DATE('01-Jun-11','DD-MON-RR'),Null,20.00,'Oracle Auto Parts',2,Null);
INSERT INTO DTPartInv VALUES('TTS400',Null,'Butt Clamp','Beink Pipes Inc',10,'Valves',TO_DATE('31-Oct-11','DD-MON-RR'),Null,15.95,'Oracle Auto Parts',2,Null);
INSERT INTO DTPartInv VALUES('TBA400',Null,'Lap Clamp','Beink Pipes Inc',10,'Valves',TO_DATE('10-Nov-11','DD-MON-RR'),Null,30.00,'Oracle Auto Parts',2,Null);
INSERT INTO DTPartInv VALUES('SC16650',Null,'Brake pads','CostVB Mechanical',5,'Mechanical Parts',TO_DATE('15-May-11','DD-MON-RR'),Null,60.00,'Adosql Auto Parts',1,Null);
INSERT INTO DTPartInv VALUES('OB46613',Null,'Emergency Door Latch','CostVB Mechanical',3,'Mechanical Parts',TO_DATE('01-Sep-11','DD-MON-RR'),Null,45.95,'Adosql Auto Parts',1,Null);
And this is a sample of the error I'm geeting:
INSERT INTO DTPartInv VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-APR-10','DD-MON-RR'),Null,45.95,'Oracle Auto Parts',1,Null)
ERROR at line 1:
ORA-00947: not enough values
I need to figure out, what it is that I am missing here. partinv_flag is supposed to be calculated based on partinv_instock and partinv_reorder.You need to name columns:
1 INSERT INTO DTPartInv
2 (partinv_partnbr, partinv_prodname, partinv_desc, partinv_manufact, partinv_instock, partinv_category, partinv_purchdate,
3 partinv_loc, partinv_price, partinv_vendor, partinv_reorder, partinv_serial)
4* VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-01-10','DD-MM-RR'),Null,45.95,'Oracle Auto Parts',1,Null)
SQL> /
1 row created.
SQL> select * from dtpartinv;
PARTINV_PA PARTINV_PRODNAME PARTINV_DESC
PARTINV_MANUFACT PARTINV_INSTOCK PARTINV_CATEGORY PARTINV_
PARTINV_LOC PARTINV_PRICE PARTINV_VENDOR PARTINV_REORDER
PARTINV_SERIAL P
XT40010E Exhaust Pipe
TMC Inc 2 Pipes 11/01/10
45,95 Oracle Auto Parts 1
OEdited by: P. Forstmann on 21 nov. 2011 18:57
Edited by: P. Forstmann on 21 nov. 2011 19:00 -
Create Create table statement dynamicallly
I am trying to create a SP that return a “Create table “statement dynamically using a table called “Employee” in database. How can I create a dynamic Create Table
statement using sys.table? The create table statement should contains all the columns from Employee table.. i am using SQL server 2008 R2Hi SSAS_5000,
If you don't care about the constraints,dependency on the Table Employee and what you'd like is the table structure, you may use the below statement where the create statement generated from the SP is executed.
SELECT TOP 1 * INTO desiredTable FROM Eemploy;
TRUNCATE TABLE desiredTable
If you have question, feel free to let me know.
Eric Zhang
TechNet Community Support -
Generate Create Table Statements
Hi, the problem is:
My company want to migrate our SQL Server DB to Winwows Azure Server (currently we have our own domain and server), but Azure doesn't support the sentence 'Into' to create temporary tables, so we should replace all 'Into' sentences to corresponding 'Create
Table' statements. Our system have up 1000 SP's with 'Into' sentences and many SP's have a lot of them.
My question: is possible generate a 'Create Table' statement automatically, from a 'select into' sentence? i want to know if Management Studio or external tool have this feature o something similar.
Sorry for my poor english but this is not my native language.
Thanks!Try this one on for size. Run it against your existing DB. It'll give you create scripts you can use on your new DB.
WITH allCols AS (
SELECT s.name as sName, o.name AS oName, c.name AS cName, column_id,
CASE WHEN st.name in ('float','bigint','tinyint','int','smallint','bit','datetime','money','date','datetime2','uniqueidentifier','sysname','geography','geometry') THEN st.name
WHEN st.name in ('numeric','real') THEN st.name + '('+CAST(c.scale AS VARCHAR)+','+CAST(c.precision AS VARCHAR)+')'
WHEN st.name in ('varbinary','varchar','binary','char','nchar','nvarchar') THEN st.name + '(' + CAST(ABS(c.max_length) AS VARCHAR) + ')'
ELSE st.name + ' unknown '
END + ' '+
CASE WHEN c.is_identity = 1 THEN 'IDENTITY ' ELSE '' END +
CASE WHEN c.is_nullable = 0 THEN 'NOT ' ELSE '' END + 'NULL' AS bText,
f.name AS fileGroupName
FROM sys.columns c
INNER JOIN sys.objects o
ON c.object_id = o.object_id
AND o.type = 'U'
INNER JOIN sys.systypes st
ON c.user_type_id = st.xusertype
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
INNER JOIN sys.indexes i
ON o.object_id = i.object_id
AND i.index_id = (SELECT MIN(index_id) FROM sys.indexes WHERE object_ID = o.object_id)
INNER JOIN sys.filegroups f
ON i.data_space_id = f.data_space_id
), rCTE AS (
SELECT sName, oName, cName, column_id, CAST(cName + ' ' + bText AS VARCHAR(MAX)) as bText, CAST(cName AS VARCHAR(MAX)) AS colList, fileGroupName
FROM allCols
WHERE column_id = 1
UNION ALL
SELECT r.sName, r.oName, r.cName, c.column_id, CAST(r.bText +', ' + c.cName + ' ' +c.bText AS VARCHAR(MAX)), CAST(r.colList+ ', ' +c.cName AS VARCHAR(MAX)), c.fileGroupName
FROM allCols c
INNER JOIN rCTE r
ON c.oName = r.oName
AND c.column_id - 1 = r.column_id
), allIndx AS (
SELECT 'CREATE '+CASE WHEN is_unique = 1 THEN ' UNIQUE ' ELSE '' END+i.type_desc+' INDEX ['+i.name+'] ON ['+CAST(s.name COLLATE DATABASE_DEFAULT AS NVARCHAR )+'].['+o.name+'] (' as prefix,
CASE WHEN is_included_column = 0 THEN '['+c.name+'] '+CASE WHEN ic.is_descending_key = 1 THEN 'DESC' ELSE 'ASC' END END As cols,
CASE WHEN is_included_column = 1 THEN '['+c.name+']'END As incCols,
') WITH ('+
CASE WHEN is_padded = 0 THEN 'PAD_INDEX = OFF,' ELSE 'PAD_INDEX = ON,' END+
CASE WHEN ignore_dup_key = 0 THEN 'IGNORE_DUP_KEY = OFF,' ELSE 'IGNORE_DUP_KEY = ON,' END+
CASE WHEN allow_row_locks = 0 THEN 'ALLOW_ROW_LOCKS = OFF,' ELSE 'ALLOW_ROW_LOCKS = ON,' END+
CASE WHEN allow_page_locks = 0 THEN 'ALLOW_PAGE_LOCKS = OFF' ELSE 'ALLOW_PAGE_LOCKS = ON' END+
')' as suffix, index_column_id, key_ordinal, f.name as fileGroupName
FROM sys.indexes i
LEFT OUTER JOIN sys.index_columns ic
ON i.object_id = ic.object_id
AND i.index_id = ic.index_id
LEFT OUTER JOIN sys.columns c
ON ic.object_id = c.object_id
AND ic.column_id = c.column_id
INNER JOIN sys.objects o
ON i.object_id = o.object_id
AND o.type = 'U'
AND i.type <> 0
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
INNER JOIN sys.filegroups f
ON i.data_space_id = f.data_space_id
), idxrCTE AS (
SELECT r.prefix, CAST(r.cols AS NVARCHAR(MAX)) AS cols, CAST(r.incCols AS NVARCHAR(MAX)) AS incCols, r.suffix, r.index_column_id, r.key_ordinal, fileGroupName
FROM allIndx r
WHERE index_column_id = 1
UNION ALL
SELECT o.prefix, COALESCE(r.cols,'') + COALESCE(', '+o.cols,''), COALESCE(r.incCols+', ','') + o.incCols, o.suffix, o.index_column_id, o.key_ordinal, o.fileGroupName
FROM allIndx o
INNER JOIN idxrCTE r
ON o.prefix = r.prefix
AND o.index_column_id - 1 = r.index_column_id
SELECT 'CREATE TABLE ['+sName+'].[' + oName + '] ('+bText+') ON [' + fileGroupName +']'
FROM rCTE r
WHERE column_id = (SELECT MAX(column_id) FROM rCTE WHERE r.oName = oName)
UNION ALL
SELECT prefix + cols + CASE WHEN incCols IS NOT NULL THEN ') INCLUDE ('+incCols ELSE '' END + suffix+' ON [' + fileGroupName +']'
FROM idxrCTE x
WHERE index_column_id = (SELECT MAX(index_column_id) FROM idxrCTE WHERE x.prefix = prefix)
Don't forget to mark helpful posts, and answers. It helps others to find relevant posts to the same question. -
Create table statement from DatabaseMetaData
Hi Experts,
Do you know if it's possible to retrieve a create table statement based on a DatabaseMetaData ? (without looping through columnName / Type)
The idea is to get the DatabaseMetaData from one db server, and execute the Create Table statements on a different db server.
One obvious solution would be to loop through each table's column name/type and construct the create table statement manually, but I'd like to know whether this can be automated.
Thanks in advnace,
SidBigger databases provide a way to access most schema information from the database itself. That doesn't mean that the jdbc meta information is sufficient nor the best way to do that.
There are existing tools that allow for migrations as well. Especially if the migration is a one to one mapping. -
i am accessing the local database through JDBC for an application. but i've been getting "not allowed" errors while trying to execute a CREATE TABLE statement in my servlet. It allows all other statements like insert, delete, select etc. i've been using a default table because of the same reason.
so if someone could please throw some light into it.Hi,
Statements like Create which is a Data definition one
will not be entertained by the program while executing.
The reason being the DB cannot allocate the required buffer for crating a table at the time of execution.
So the alterantive is create your DB table manually in ur Db and try other DML statements.
Hope it helps.
Regards,
Guru -
SQLPLUS - Create Table statement
Hello gents/ladies.
I have a few tables that I want to import from a DUMP file I have from MySQL. My quickie question : I've removed all the MySQL specific formatting ( I thought ) like Type=MYISAM and similar, and ended up with a CREATE TABLE statement that looks like this:
CREATE TABLE customerdetails (
custid NUMBER(11) NOT NULL auto_increment,
uid_system varchar2(20) NOT NULL default '',
pwd_system varchar2(20) NOT NULL default '',
lastname varchar2(30) NOT NULL default '',
firstname varchar2(30) NOT NULL default '',
middleinitial char(1) default NULL,
day_phone_countrycode char(3) default NULL,
day_phone_main varchar2(16) default NULL,
evening_phone_countrycode char(3) default NULL,
evening_phone_main varchar2(16) default NULL,
email_primary varchar2(80) NOT NULL default '',
email_secondary varchar2(80) default NULL,
street_adress varchar2(80) NOT NULL default '',
state_prov char(3) NOT NULL default '',
zipcode varchar2(11) NOT NULL default '',
countrycode char(3) NOT NULL default '',
PRIMARY KEY (custid),
UNIQUE KEY UC_custid(custid),
UNIQUE KEY IDX_system_uid(uid_system),
KEY idx_lname_fname_mi(lastname,firstname,middleinitial),
KEY IDX_day_phone(day_phone_countrycode,day_phone_main)
I get this error back from SQLPLUS:
CREATE TABLE CUSTOMERDETAILS (
ERROR in line 1:
ORA-00922: missing or invalid option
I've read through the documentation, and can't see what I'm missing here. Could somebody PLEASE point out the obviously screaming error in this statement?
Thanks!
Kind regards,
Henning Kilset Pedersen
Funcom OSLO ASHi Henning Pedersen,
First of all the your query syntax is wrong.
1. the keyword you used "auto_increment" is not in oracle. you need to take it out from query.
2. you are saying some columns are not null but giving default value as '' (two quotes without any space), this is contradiction, since '' is null, this gives you an error.
Need to take it out.
3. the keyword UNIQUE KEY is wrong you need to use only UNIQUE.
4. Another option is not correct it UNIQUE KEY IDX_system_uid(uid_system),
it must be UNIQUE (uid_system)
5. There is not any keyword as a KEY in oracle. you need to take it out from the query too.
The final query will be like :
CREATE TABLE customerdetails (
custid NUMBER(11) NOT NULL ,
uid_system varchar2(20) NOT NULL ,
pwd_system varchar2(20) NOT NULL ,
lastname varchar2(30) NOT NULL ,
firstname varchar2(30) NOT NULL ,
middleinitial char(1) default NULL,
day_phone_countrycode char(3) default NULL,
day_phone_main varchar2(16) default NULL,
evening_phone_countrycode char(3) default NULL,
evening_phone_main varchar2(16) default NULL,
email_primary varchar2(80) NOT NULL ,
email_secondary varchar2(80) default NULL,
street_adress varchar2(80) NOT NULL ,
state_prov char(3) NOT NULL ,
zipcode varchar2(11) NOT NULL ,
countrycode char(3) NOT NULL ,
PRIMARY KEY (custid),
UNIQUE (custid),
UNIQUE (uid_system)---,
---KEY idx_lname_fname_mi(lastname,firstname,middleinitial),
---KEY IDX_day_phone(day_phone_countrycode,day_phone_main)
This would work fine.
Thanx
Arvind.
null -
Hi,
I am facing the following problem:
Database A is running with a great number of tables.
Database B should contain the same tables as A with different data (DB B is empty at the moment).
Therefore I've collected all the 'create table'-statements and packed them into a script.
Because there are several foreign key constraints in DB A (not all deferrable) it seems to be a problem to execute the script.
I have searched the internet how to disable constraints before executing the statements, but I' ve only found solutions for disabling constraints for allready existing tables - not disabling constraint checks will creating.
So, could you please give me a hint what keywords I should use for my further search?
Thanks in advance.steve sastro wrote:
Thanks to all of you.
The point is: I don't really like tools (where I have to click in GUIs). I prefer to see what's going on - just to learn what's happening behind.
As soon as I have tested all of your topics I will reward you with the forum-points. Thx again.
EDIT: Version is 10g
Edited by: steve sastro on 07.12.2009 11:28Being an old-fart command line guy myself, I can appreciate that -- up to a point. But eventually it gets to be simply re-inventing the wheel.
Use exp at the command line. Then use the 'strings' command to examine the output .dmp file. That will give you the education you seek. -
Hi,
I'm using Oracle Db 10g.
I want to take the create table statements of few tables.
Is there any way to get that?
ThanksYou can use DBMS_METADATA package:
select dbms_metadata.get_ddl('TABLE', 'TABLE_NAME') from dual;http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_metada.htm#ARPLS026
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1794096300346327738 -
Create table statement in stored procedures
Hi,
I am including the following statement in a stored procedure and receive the following error:
STATEMENT:
create table wrk_date (date date,
qty smallint)
tablespace temptabs;
ERROR:
PLS-00103: Encountered the symbol "CREATE" when expecting one of the following:
begin declare exit for goto if loop mod null pragma raise
return select update while <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql commit <a single-quoted SQL string>
Is this statement not allowed or is there a possible syntax error above?
I am using Oracle database version 8.0.5.
Thanks.
nullJimmy - You might want to buy the Following book from Oreilley Press Oracle Built in Pacakages it's very very good and came in handy when I has to write dynamic SQL (DBMS_SQL package).
You might want to try www.bookpool.com which has technical books cheaper than amazon.
Hope this helps.
_Satish
Oracle 8 Certified D.B.A.
Sun Certified Sysadmin -
Create table statement inside a procedure.
Hi,
I'm trying to write a procedure creates some tables. The procedure has not arguments. I have written it in this way:
CREATE OR REPLACE PROCEDURE MIGRAZIONE
IS
var varchar2(2000);
BEGIN
--INIZIO tabella dominio spr_klers_bor_borsa
CREATE TABLE SPR_KLERS_BOR_BORSA34
ID VARCHAR2(4 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(80 BYTE)
CREATE UNIQUE INDEX SPR_KLERS_IAZ_BORSA_PK ON SPR_KLERS_BOR_BORSA
(ID)
LOGGING
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOPARALLEL;
ALTER TABLE SPR_KLERS_BOR_BORSA ADD (
CONSTRAINT SPR_KLERS_IAZ_BORSA_PK
PRIMARY KEY
(ID)
USING INDEX
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
--FINE tabella spr_klers_bor_borsa
END MIGRAZIONE;When I compile I receive this message:
PLS-00103: Encountered the symbol "CREATE" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
What does it mean?
How can I solve?
I have tried to change the procedure in this way:
CREATE OR REPLACE PROCEDURE MIGRAZIONE
IS
var varchar2(2000);
BEGIN
--INIZIO tabella dominio spr_klers_bor_borsa
var := 'CREATE TABLE SPR_KLERS_BOR_BORSA
ID VARCHAR2(4 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(80 BYTE)
CREATE UNIQUE INDEX SPR_KLERS_IAZ_BORSA_PK ON SPR_KLERS_BOR_BORSA
(ID)
LOGGING
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOPARALLEL;
ALTER TABLE SPR_KLERS_BOR_BORSA ADD (
CONSTRAINT SPR_KLERS_IAZ_BORSA_PK
PRIMARY KEY
(ID)
USING INDEX
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
execute immediate var;
--FINE tabella spr_klers_bor_borsa
END MIGRAZIONE;And when I compile the version above I receive:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
How can I solve?
Thanks all, bye bye.Here you have to user dynamic sql for create table, cerate index etc.
like
CREATE OR REPLACE PROCEDURE MIGRAZIONE
IS
var varchar2(2000);
BEGIN
--INIZIO tabella dominio spr_klers_bor_borsa
var := 'CREATE TABLE SPR_KLERS_BOR_BORSA
ID VARCHAR2(4 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(80 BYTE)
Execute immediate var;
var := 'CREATE UNIQUE INDEX SPR_KLERS_IAZ_BORSA_PK ON SPR_KLERS_BOR_BORSA
(ID)
LOGGING
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOPARALLEL' ;
Execute immediate var;
var := 'ALTER TABLE SPR_KLERS_BOR_BORSA ADD (
CONSTRAINT SPR_KLERS_IAZ_BORSA_PK
PRIMARY KEY
(ID)
USING INDEX
TABLESPACE FIN_DATA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
execute immediate var;
--FINE tabella spr_klers_bor_borsa
END MIGRAZIONE;YOu can specify all the ddl statements in one execute immediate.
Edited by: s_2 on Oct 17, 2008 6:59 PM
Maybe you are looking for
-
Error while Uploading the docs into KM using webdynpro for java
In My view I have create a context node(ctx_va_FileData) with value attribute (ctx_va_FileResource) of type ,Resource. Select the Simple Type, navigate to Dictionaries u2192 Local Dictionary u2192com.sap.ide.webdynpro.uielementdefinitions and select
-
How come my videos are no longer in my playlists after downloading ios6 to my iphone 4s and ipod touch?
-
can anyone please let me know about xmi files?...i came across this doubt while i was going thru the NWDS web dynpro model tools which import an XMI model for developing an application.
-
Regarding Table controls dialog programming
Hello Experts- I have a requirement in which I need to identity the record selected on the table control.This is similar to At line slection.Can anyone help me out.Thanks in advance. With regards, Swarna..
-
ADF security removes applied authorizations
hi, I created a mockup page containing only panelPage inside a form. In page definition I edited authorization so that role roleA has all privileges on the page as well as roles roleB and roleC (both roleB and roleC are sub-roles of role roleA as def