我正试图建立一个Oracle储存的程序,接受一张表名作为参数。 这一程序将重建表格上的所有索引。
我的问题是,在使用“ALTER”指挥系统时,我犯了一个错误,因为如果PLSQL不允许这一指挥。
我正试图建立一个Oracle储存的程序,接受一张表名作为参数。 这一程序将重建表格上的所有索引。
我的问题是,在使用“ALTER”指挥系统时,我犯了一个错误,因为如果PLSQL不允许这一指挥。
这里有两种可能性。 首先,你们必须把卡片作为动态的宝库对待。 其次,Oracle DDL声明不能在交易中进行(或终止目前的交易,不能自行撤销)。 这可能影响到你能否在所储存的程序中使用这些程序,或者在你能够使用含有这些储存的程序的情况下。
如果上述任何一项都适用——可能很容易发生其他的欺骗——我建议张贴一些法典。
利用<条码>立即销毁条码>说明,在PL/SQL中执行DDL。
create procedure RebuildIndex(index_name varchar2) as
begin
execute immediate alter index || index_name || rebuild ;
end;
我测试了该守则;该守则行之有效。
www.un.org/Depts/DGACM/index_spanish.htm 通过Schema 反对名
Suppose you need a procedure that accepts the name of any database table, then drops that table from your schema. You must build a string with a statement that includes the object names, then use EXECUTE IMMEDIATE to execute the statement:
CREATE TABLE employees_temp AS SELECT last_name FROM employees;
CREATE PROCEDURE drop_table (table_name IN VARCHAR2) AS
BEGIN
EXECUTE IMMEDIATE DROP TABLE || table_name;
END;
/
Use concatenation to build the string, rather than trying to pass the table name as a bind variable through the USING clause.
In addition, if you need to call a procedure whose name is unknown until runtime, you can pass a parameter identifying the procedure. For example, the following procedure can call another procedure (drop_table) by specifying the procedure name when executed.
CREATE PROCEDURE run_proc (proc_name IN VARCHAR2, table_name IN VARCHAR2) ASBEGIN
EXECUTE IMMEDIATE CALL " || proc_name || " ( :proc_name ) using table_name;
END;
/
If you want to drop a table with the drop_table procedure, you can run the procedure as follows. Note that the procedure name is capitalized.
CREATE TABLE employees_temp AS SELECT last_name FROM employees;
BEGIN
run_proc( DROP_TABLE , employees_temp );
END;
/
I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...
I ve got the following objects: CREATE FUNCTION CONSTFUNC RETURN INT DETERMINISTIC AS BEGIN RETURN 1; END; CREATE TABLE "FUNCTABLE" ( "ID" NUMBER(*,0) NOT NULL, "VIRT" NUMBER GENERATED ALWAYS AS ...
The following code works. the connection opens fine but recordset.recordCount always returns -1 when there is data in the table. ANd If I try to call any methods/properties on recordset it crashes ...
I was wondering, is there a way to make a kind of one to one left outer join: I need a join that matches say table A with table B, for each record on table A it must search for its pair on table B, ...
I need to be able to run an Oracle query which goes to insert a number of rows, but it also checks to see if a primary key exists and if it does, then it skips that insert. Something like: INSERT ALL ...
I just came across NULL values in NOT-NULL fields in our test database. How could they get there? I know that NOT-NULL constraints can be altered with NOVALIDATE clause, but that would change table s ...
I m studying databases and am currently working on a object-relational DB project and I ve encountered a small problem with the number of possible constraints in an object table. I m using "Database ...
we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...