我是 Oracle 新手,正在学习游标。我的表 City 有两列 city_id,city_name。所以,这就是我尝试过的:
DECLARE
CURSOR city_list is
SELECT * from OT.City;
v_list SYS_REFCURSOR;
BEGIN
OPEN city_list FOR
v_list := city_list;
DBMS_OUTPUT.PUT_LINE(v_list.city_id);
EXIT WHEN city_list%NOTFOUND;
CLOSE city_list;
END;
/
Run Code Online (Sandbox Code Playgroud)
我试图将游标的数据分配给新声明的值 v_list SYS_REFCURSOR;。但是输出出现错误v_list := city_list;。如何将游标的所有值直接分配给另一个游标,或者还有其他方法吗?
我正在使用 spring boot.My pom.xml 是:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ashwin</groupId>
<artifactId>spring_app_vemployee</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_app_vemployee</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.9.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>9.0.27</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions> …Run Code Online (Sandbox Code Playgroud) 我有categoryDfSpark Dataframe 并且它已成功打印:
categoryDf.limit(10).toPandas()
Run Code Online (Sandbox Code Playgroud)
我想将其加入到另一个 Sparkdataframe 中。所以,我尝试了这个:
df1=spark.read.parquet("D:\\source\\202204121920-seller_central_opportunity_explorer_niche_summary.parquet")
#df1.limit(5).toPandas()
df2=df1.join(categoryDf,df1["category_id"] == categoryDf["cat_id"])
df2.show()
Run Code Online (Sandbox Code Playgroud)
当我使用df2.show()时,我看到输出为:
连接成功进行。但是当我尝试将其更改为 时df2.limit(10).toPandas(),我看到错误:
AttributeError: 'DataFrame' object has no attribute 'dtype' error in pyspark
Run Code Online (Sandbox Code Playgroud)
我想看看加入后数据如何。所以,我尝试使用df2.limit(10).toPandas(). 或者自从我的加入成功后还有其他方法可以查看数据吗?
我的Python版本是:3.7.7
火花版本是:2.4.4
我有一个包含 specs 和 body 的包。
它的规格是
CREATE OR REPLACE PACKAGE OT.PK_TEST IS
FUNCTION PRNT_STRNG RETURN VARCHAR2;
PROCEDURE PR_SUPERHERO(F_NAME VARCHAR2,L_NAME VARCHAR2);
PROCEDURE PR_new(full_name VARCHAR2);
END PK_TEST;
/
Run Code Online (Sandbox Code Playgroud)
它的身体是:
CREATE OR REPLACE PACKAGE BODY OT.PK_TEST IS
FUNCTION PRNT_STRNG
RETURN VARCHAR2
IS
BEGIN
RETURN 'SUMAN';
END PRNT_STRNG;
PROCEDURE PR_SUPERHERO(F_NAME VARCHAR2,L_NAME VARCHAR2)
IS
OLD_NAME VARCHAR2(255);
BEGIN
DBMS_OUTPUT.PUT_LINE(F_NAME);
DBMS_OUTPUT.PUT_LINE(L_NAME);
OT.PR_new(f_name||L_NAME);
DBMS_OUTPUT.PUT_LINE('----------');
OLD_NAME :=OT.PRNT_STRNG;
DBMS_OUTPUT.PUT_LINE(OLD_NAME);
END PR_SUPERHERO;
PROCEDURE PR_new(full_name VARCHAR2)
IS
V_NAME VARCHAR2(255) :=FULL_NAME;
BEGIN
DBMS_OUTPUT.PUT_LINE(V_NAME);
END PR_new;
END PK_TEST;
/
Run Code Online (Sandbox Code Playgroud)
但是当我编译 body 时,我得到的错误是:
[Warning] ORA-24344: …Run Code Online (Sandbox Code Playgroud) 我是 REGEX 的新手。所以,我试过:
select * from ot.contacts where REGEXP_like(last_name,'^[A-C]');
Run Code Online (Sandbox Code Playgroud)
另外,我试过:
select * from ot.contacts where REGEXP_like(last_name,'[A-C]');
Run Code Online (Sandbox Code Playgroud)
他们都给了我输出,其中 last_name 以 A、b、c 开头,并且获取的记录数是相同的。你能告诉我什么时候可以看到使用这个插入符号的区别吗?
declare
vquery long;
cursor c1 is
select * from temp_name;
begin
for i in c1
loop
vquery :='INSERT INTO ot.temp_new(id)
select '''||i.id||''' from ot.customers';
dbms_output.put_line(i.id);
end loop;
end;
/
Run Code Online (Sandbox Code Playgroud)
的输出select * from temp_name是:
ID
--------------------------------------------------------------------------------
customer_id
1 row selected.
Run Code Online (Sandbox Code Playgroud)
我有包含 customer_id 列的客户表。我想将所有 customer_id 插入到 temp_new 表中,但它没有被插入。PLSQL 块成功执行,但 temp_new 表为空。的输出dbms_output.put_line(i.id);是
customer_id
Run Code Online (Sandbox Code Playgroud)
有什么问题吗?