我想创建这样的表:
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脚本,它创建了一个简单的库在线目录的数据库模式:
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) 我可以访问表,但是当我在Anonymous块中运行相同的查询时
我有一个名称Shipment有列的表HAWB, MAWB.如何检查这两列是否具有空值?
任何人都可以分享如何使用类似于下面的内容或PL/SQL中的内容将粗体文本写入.dat文件?
UTL_FILE.PUT_LINE(FPOINTER,'i want this in bold');
Run Code Online (Sandbox Code Playgroud) 我的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) 动态请求如下所示:
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直到运行时才会知道,因为它应该对应用此过程的任何表不施加任何限制.但是,我如何迭代查询返回的内容?
我有一个存储过程:
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)"表.
知道为什么我得到这个错误.请帮忙.
我已经在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)