标签: plsql

Oracle问题:立即执行

我想创建这样的表:

create table ttt
(
   col1 varchar2(2),
   col2 varchar2(2),
   col3 varchar2(2),
   col4 varchar2(2),
   col5 varchar2(2)
);
Run Code Online (Sandbox Code Playgroud)

使用此过程,但它不起作用.你能救我吗?

declare
  str varchar2(200);
  i int;
begin
  for i in 1 .. 5 loop
  begin
    str:=’str’||i||”;
  end;
  end loop;
  execute immediate ‘create table t1 (“str” varchar2(2) )’;
end;
/
Run Code Online (Sandbox Code Playgroud)

提前致谢.

sql oracle plsql oracle10g

0
推荐指数
1
解决办法
571
查看次数

我的架构创建脚本中的错误

所以我有一个简单的SQL脚本,它创建了一个简单的库在线目录的数据库模式:

DROP TABLE book_copies;
/
DROP TABLE books_authors_xref;
/
DROP TABLE authors;
/
DROP TABLE books;
/

CREATE TABLE books (
    isbn VARCHAR2(13) NOT NULL PRIMARY KEY,
    title VARCHAR2(200),
    summary VARCHAR2(2000),
    date_published DATE,
    page_count NUMBER
);
/

CREATE TABLE authors (
    name VARCHAR2(200) NOT NULL PRIMARY KEY
);
/

CREATE TABLE books_authors_xref (
    author_name VARCHAR2(200),
    book_isbn VARCHAR2(13),
    CONSTRAINT pk_books_authors_xref PRIMARY KEY (author_name, book_isbn),
    CONSTRAINT fk_books_authors_xref1 FOREIGN KEY (author_name) REFERENCES authors (name),
    CONSTRAINT fk_books_authors_xref2 FOREIGN KEY (book_isbn) REFERENCES books (isbn)
); …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql sqlplus

0
推荐指数
1
解决办法
143
查看次数

程序是否需要在表上单独访问权限?

我可以访问表,但是当我在Anonymous块中运行相同的查询时

oracle privileges plsql stored-procedures

0
推荐指数
1
解决办法
81
查看次数

带游标的PL/SQL过程

我需要检查记录集中的任何列是否包含数据.

我必须检查10列的数据.如果没有数据则必须退出,否则继续下一步.

sql oracle plsql

0
推荐指数
1
解决办法
108
查看次数

如何在plsql中检查列值是否为null?

我有一个名称Shipment有列的表HAWB, MAWB.如何检查这两列是否具有空值?

java sql plsql

0
推荐指数
1
解决办法
4816
查看次数

使用UTL_FILE包编写粗体文本

任何人都可以分享如何使用类似于下面的内容或PL/SQL中的内容将粗体文本写入.dat文件?

UTL_FILE.PUT_LINE(FPOINTER,'i want this in bold');
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

0
推荐指数
1
解决办法
2821
查看次数

在SQL中将日期与一年中的季节分开的问题

我的DW中有一个TIME维度,我想添加一个阵营来填补今年的赛季.我想做这样的事情:

create or replace
PROCEDURE "PROC_UPDATE_SEASON" 

IS 
CURSOR curs IS   
SELECT * FROM indw.time FOR UPDATE;  
 cur_d NUMBER;   
 cur_m NUMBER;   
 start_d NUMBER;   
 start_m NUMBER;   
 end_d NUMBER;   
 end_m NUMBER;
 cur_Date DATE;     

 BEGIN 
 FOR cs IN curs 
 LOOP 
     cur_d := to_number(to_char(cs.time_DAY,'dd')); 
     cur_m := to_number(to_char(cs.time_DAY,'mm')); 
     cur_date:= cs.time_DAY; -- this is my date dd-mm-yyyy or dd/mm/yyyy


     if ((cur_date in format dd/mm is >= 21/12 and <=31/12) OR cur_date>=01/01 and <=20/03) 
     UPDATE time t set t.time_SEASON = 'Winter' WHERE CURRENT OF curs; 
     else if cur_date_in …
Run Code Online (Sandbox Code Playgroud)

sql database oracle plsql date

0
推荐指数
1
解决办法
2476
查看次数

Oracle Dynamic'SQL select'查询记录类型

动态请求如下所示:

request := 'select * from ' || param_table_name || ' where ' || column_name_list;
Run Code Online (Sandbox Code Playgroud)

然后我做:

open cur1 for request;
Run Code Online (Sandbox Code Playgroud)

直接获取的记录的确切类型cur1直到运行时才会知道,因为它应该对应用此过程的任何表不施加任何限制.但是,我如何迭代查询返回的内容?

oracle plsql dynamic-sql

0
推荐指数
1
解决办法
1755
查看次数

执行存储过程中的问题

我有一个存储过程:

create or replace procedure AAAAAA(
ID in dbms_sql.number_table,
Name in dbms_sql.varchar2s
)
is
 tableName varchar2(30) := 'QWERT_';
Begin
Forall k in 1...ID.COUNT SAVE EXCEPTIONS
EXECUTE IMMEDIATE  'insert into ' || tableName || ID(k) ||   
' values (:1,:2)' using ID(k), NAME(k);
--EXCEPTION HANDLING CODE
End;
Run Code Online (Sandbox Code Playgroud)

但是,在编译上面的代码时,我得到了

[错误] PLS-00801(9:5):PLS-00801:内部错误[ *文件pdw4.c的ASSERT,第607行; 未知的表达式Expr = 283.AAAAAA_ FFF _P__274784 [9,5]].在运行此过程之前已经创建了"tableName || ID(k)"表.

知道为什么我得到这个错误.请帮忙.

oracle plsql

0
推荐指数
1
解决办法
463
查看次数

Oracle:异常和错误

我已经在SQL中编写了这个函数,我无法弄清楚为什么,但它继续在异常部分返回错误.我检查了语法,记录了但我没有运气,有人请帮忙吗?


错误返回:

Error on line 83: PLS-00103: Found symbol "EXCEPTION" instead one of the following:
    begin case declare end exit for goto if loop mod null pragma raise return select update while with
    <<
    close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Run Code Online (Sandbox Code Playgroud)
create or replace function InsertPeriodoEvento
    (NomePeriodo in varchar,
    aInizio in integer,
    aFine in integer,
    NomeEvento1 in varchar,
    g1 in integer,
    m1 in integer,
    a1 in integer,
    NomeEvento2 in varchar,
    g2 …
Run Code Online (Sandbox Code Playgroud)

oracle plsql exception-handling pls-00103

0
推荐指数
2
解决办法
340
查看次数