Can one call DDL statements from PL/SQL?
PL/SQL FAQ - Oracle FAQOne can call DDL statements like CREATE, DROP, TRUNCATE, etc. from PL/SQL by using the "EXECUTE IMMEDIATE" statement (native SQL). Examples: begin EXECUTE IMMEDIATE 'CREATE TABLE X(A DATE)'; end; begin execute Immediate 'TRUNCATE TABLE emp'; end; DECLARE var VARCHAR2(100); BEGIN var := 'CREATE TABLE temp1(col1 NUMBER(2))'; EXECUTE IMMEDIATE var; END; Users running Oracle versions below Oracle 8i can look at the DBMS_SQL package (see FAQ about Dynamic SQL).
Can one use dynamic SQL statements from PL/SQL?
PL/SQL FAQ - Oracle FAQStarting from Oracle8i one can use the "EXECUTE IMMEDIATE" statement to execute dynamic SQL and PL/SQL statements (statements created at run-time). Look at these examples. Note that the statements within quotes are NOT semicolon terminated: EXECUTE IMMEDIATE 'CREATE TABLE x (a NUMBER)'; -- Using bind variables... sql_stmt := 'INSERT INTO dept VALUES (:1, :2, :3)'; EXECUTE IMMEDIATE sql_stmt USING dept_id, dept_name, location; -- Returning a cursor..
What are the Blocks in PL/SQL?
PL/SQL FAQ - Page 2Latest Answer: Hi All,I am new to this community. It seems the question is related to Begin End block of PL/SQL. Se... Latest Answer: You must be speaking about PLS_INTEGER. PLS_INTEGER, uses machine-arithmetic unlike BINARY_INTEGER... Latest Answer: DESC will display the values in DESCending order when used in an ORDER BY clause.For example:SELECT ... Latest Answer: In hash join hash table gets build using the inputs. Nested loops as the name implies uses looping c..
How Do I Continue After a PL/SQL Exception?
G Frequently Asked Questions About PL/SQLBy default, you put an exception handler at the end of a subprogram to handle exceptions that are raised anywhere inside the subprogram. To continue executing from the spot where an exception happens, enclose the code that might raise an exception inside another BEGIN-END block with its own exception handler. For example, you might put separate BEGIN-END blocks around groups of SQL statements that might raise NO_DATA_FOUND, or around arithmetic operations that might raise DIVIDE_BY_ZERO.
What is the difference between SQL and PL/SQL?
PL/SQL FAQ - Oracle FAQSQL is a limited language that allows you to directly interact with the database. You can write queries (SELECT), manipulate objects (DDL) and data (DML) with SQL. However, SQL doesn't include all the things that normal programming languages have, such as loops and IF...THEN...ELSE statements. PL/SQL is a normal programming language that includes all the features of most other programming languages.
What is the difference between sql/pl-sql/embeded sql?
PL/SQL FAQLatest Answer: SQL is a structured query language.Used to perform operations such as retrieval,updations,insertions... How can I use the bind variable in a report to create an output file. For example I give the starting... What is the difference between IS/AS while creating a procedure ?i.e Create or Replace procedure is/as... How to write a query or procedure or function to retrieve all the tables from database where the table...
What is PL/SQL and what is it used for?
PL/SQL FAQ - Oracle FAQSQL is a declarative language that allows database programmers to write a SQL declaration and hand it to the database for execution. As such, SQL cannot be used to execute procedural code with conditional, iterative and sequential statements. To overcome this limitation, PL/SQL was created. PL/SQL is Oracle's Procedural Language extension to SQL. PL/SQL's language syntax, structure and data types are similar to that of Ada.
Can one print to the screen from PL/SQL?
PL/SQL FAQ - Oracle FAQOne can use the DBMS_OUTPUT package to write information to an output buffer. This buffer can be displayed on the screen from SQL*Plus if you issue the SET SERVEROUTPUT ON; command. For example: set serveroutput on begin dbms_output.put_line('Look Ma, I can print from PL/SQL!!!'); end; / DBMS_OUTPUT is useful for debugging PL/SQL programs. However, if you print too much, the output buffer will overflow. In that case, set the buffer size to a larger value, eg.
When Should I Use Bind Variables with PL/SQL?
G Frequently Asked Questions About PL/SQLWhen you imbed an INSERT, UPDATE, DELETE, or SELECT SQL statement directly in your PL/SQL code, PL/SQL turns the variables in the WHERE and VALUES clauses into bind variables automatically. Oracle can reuse these SQL statement each time the same code is executed. To run similar statements with different variable values, you can save parsing overhead by calling a stored procedure that accepts parameters, then issues the statements with the parameters substituted in the right places.
How Can I Use Regular Expressions with PL/SQL?
G Frequently Asked Questions About PL/SQLYou can test or manipulate strings using the built-in functions REGEXP_INSTR, REGEXP_REPLACE, and REGEXP_SUBSTR. Oracle's regular expression features use characters like '.', '*', '^', and '$' that you might be familiar with from UNIX or Perl programming. For multi-language programming, there are also extensions such as '[:lower:]' to match a lowercase letter, instead of '[a-z]' which does not match lowercase accented letters.
What Can I Do with Objects and Object Types in PL/SQL?
G Frequently Asked Questions About PL/SQLYou can create object types by issuing the SQL statement CREATE TYPE using dynamic SQL (the EXECUTE IMMEDIATE statement). You can use objects to group related values, as you would do with records, with the added advantage that you can store objects directly in the database. You can also create varrays, nested tables, and associative arrays of objects. You can write PL/SQL procedures and functions that accept objects as parameters.
How Do I Input or Output Data with PL/SQL?
G Frequently Asked Questions About PL/SQLAll other PL/SQL I/O is done through APIs that interact with other programs. For example, the DBMS_OUTPUT package has procedures such as PUT_LINE. To see the result outside of PL/SQL requires another program, such as SQL*Plus, to read and display the data passed to DBMS_OUTPUT. (SQL*Plus does not display DBMS_OUTPUT data unless you issue the command SET SERVEROUTPUT ON first.
How can I time my SQL statements in TCL?
FAQThe TCL time or clock commands are useful for timing statements. More information is available in the documentation.
I run my PL/SQL through SQL*Plus but I dont see anything? Why ?
Oracle & Financial Applications (pl/sql sql apps faq links c...Before you Execute the PL/SQL do the following: SQL> set serveroutput on SQL> execute xxxxxxxxxxxxxx.xxxxxxxxxxx; dont forget the semicolon CREATE OR REPLACE PACKAGE BODY apps_ar_forms_dup_trackcm AS select line, text from user_source where upper(name) = upper('&PLSQL_NAME') order by line Click Database, then Schema Browser, wait a few minutes. Then click the PROCS tab and look for your FUNCTION, PROCEDURE or PACKAGE. click here for a screen print example
I can SELECT from SQL*Plus but not from PL/SQL. What is wrong?
PL/SQL FAQ - Oracle FAQPL/SQL respect object privileges given directly to the user, but does not observe privileges given through roles. The consequence is that a SQL statement can work in SQL*Plus, but will give an error in PL/SQL. Choose one of the following solutions: Grant direct access on the tables to your user. Do not use roles! GRANT select ON scott.emp TO my_user; Define your procedures with invoker rights (Oracle 8i and higher); create or replace procedure proc1 authid current_user is begin ...
Is there a PL/SQL Engine in SQL*Plus?
PL/SQL FAQ - Oracle FAQNo. Unlike Oracle Forms, SQL*Plus does not have an embedded PL/SQL engine. Thus, all your PL/SQL code is sent directly to the database engine for execution. This makes it much more efficient as SQL statements are not stripped off and sent to the database individually.
How can we execute dynamic SQL From PL/SQL block?
Oracle FAQs - Page 1Hi there - I am new to Oracle (used to Ingres).I am having trouble creating a database.I keep getting the following oracle errors.ORA-01501ORA-01519ORA-00604ORA-30012Can you tell me what I am doing incorrectly?Many thankseibbed
TEXT_IO doesn't work in SQL+ or PL/SQL why ?
Oracle & Financial Applications (pl/sql sql apps faq links c...TEXT_IO can only be run in a PL/SQL script inside oracle FORMS only, not a database package/procedure called from forms.
How can one keep a history of PL/SQL code changes?
PL/SQL FAQ - Oracle FAQOne can build a history of PL/SQL code changes by setting up an AFTER CREATE schema (or database) level trigger (available from Oracle 8.1.7). This way one can easily revert to previous code should someone make any catastrophic changes. Look at this example: CREATE TABLE SOURCE_HIST -- Create history table AS SELECT SYSDATE CHANGE_DATE, USER_SOURCE.* FROM USER_SOURCE WHERE 1=2; CREATE OR REPLACE TRIGGER change_hist -- Store code in hist table AFTER CREATE ON SCOTT.
