oracle-用dbmssql在存储过程中创建表

oracle-用dbmssql在存储过程中创建表

ID:34724819

大小:58.68 KB

页数:3页

时间:2019-03-10

oracle-用dbmssql在存储过程中创建表_第1页
oracle-用dbmssql在存储过程中创建表_第2页
oracle-用dbmssql在存储过程中创建表_第3页
资源描述:

《oracle-用dbmssql在存储过程中创建表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用DBMS_SQL包普通用户须有createanytable权限才可以用DBMS_SQL包--grantcreateanytabletoYOUR_USERNAME;Examples:用DBMS_SQL包执行DDL语句----------------------------------------------------TheDBMS_SQLpackagecanbeusedtoexecuteDDLstatementsdirectlyfromPL/SQL.  例1:这是一个创建一个表的过程的例子。该过程有两个参数:表名和字段及其类型的列表。CREATEORREPLACEPROCEDUREddlp

2、roc(tablenamevarchar2,colsvarchar2)AS  cursor1INTEGER;BEGIN  cursor1:=dbms_sql.open_cursor;  dbms_sql.parse(cursor1,'CREATETABLE'

3、

4、tablename

5、

6、    '('

7、

8、cols

9、

10、')',dbms_sql.v7);  dbms_sql.close_cursor(cursor1);end;/SQL>executeddlproc('MYTABLE','COL1NUMBER,COL2VARCHAR2(10)');PL/SQLproceduresuccessfully

11、completed.SQL>descmytable;Name                  Null?  Type-------------------------------------------COL1                        NUMBERCOL2                        VARCHAR2(10)注意:DDL语句是由Parese命令执行的。因此,不能对DDL语句使用bind变量,否则你就会受到一个错误信息。下面的在DDL语句中使用bind变量的例子是错误的。  ****IncorrectExample****CREATEORREPLACE

12、PROCEDUREddlproc(tablenameVARCHAR2,                        colname  VARCHAR2,                        coltype  VARCHAR2)AS  cursor1INTEGER;  ignore  INTEGER;BEGIN  cursor1:=dbms_sql.open_cursor;  dbms_sql.parse(cursor1,'CREATETABLE:x1(:y1:z1)',dbms_sql.v7);  dbms_sql.bind_variable(cursor1,':x1',tabl

13、ename);  dbms_sql.bind_variable(cursor1,':y1',colname);  dbms_sql.bind_variable(cursor1,':z1',coltype);  ignore:=dbms_sql.execute(cursor1);  dbms_sql.close_cursor(cursor1);end;/虽然在过程创建时,没有错误信息。但在运行时,你将得到错误信息"ORA-00903:invalidtablename"。SQL>executeddlproc('MYTABLE','COL1','NUMBER');beginddlproc('MYT

14、ABLE','COL1','NUMBER');end;*ERRORatline1:ORA-00903:invalidtablenameORA-06512:at"SYS.DBMS_SYS_SQL",line239ORA-06512:at"SYS.DBMS_SQL",line25ORA-06512:at"SCOTT.DDLPROC",line8ORA-06512:atline1例2:删除表的过程。使用表明作为参数。createorreplaceproceduredroptable(table_namevarchar2)as  cursor1integer;begin  cursor1:=dbms

15、_sql.open_cursor;  dbms_sql.parse(cursor1,'DROPTABLE'

16、

17、table_name,dbms_sql.v7);  dbms_sql.close_cursor(cursor1);end;/SQL>begin  2  droptable('MYTABLE');  3  end;  4  /PL/SQLproceduresuccessfullycompleted.例3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。