我正在尝试将csv读入SQL而不使用单独的查询导入文件。我没有写入权限,因此无法导入文件或创建表格。
我想做的是这样的事情:
Select *
From path_to_file/myfile.csv T1
inner join a_schema.a_table T2 on T1.ID = T2.ID
编辑1:我正在使用什么SQL
select * from v$version
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
编辑2: 我尝试创建一个临时表:
create table #Temp
( ID VARCHAR2(100 CHAR),
Col2 VARCHAR2(100 CHAR),
)
但是我收到了这个错误:
dentifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
编辑2.1:
尝试了这个:
create global temporary table Temp ...
并且没有足够的权限错误。
答案 0 :(得分:1)
如果您使用Oracle。
据我所知,您希望在没有创建表或导入内容的权限的情况下获取oracle数据库中的数据。
我看到有两种方法可以做到这一点
1)您可以尝试使用自己的数据创建视图(如果您有 func fetchDataFromDB() {
let moc = managedObjectContext
let photoFetch = NSFetchRequest(entityName: "PhotoLibrary")
do {
let searchTerms = CommonUtil.getDataForKey("token")
photoFetch.predicate = NSPredicate(format: "NOT (accesstoken CONTAINS %@)",searchTerms)
let photoArray = try moc.executeFetchRequest(photoFetch)
for result in photoArray
{
let match = result as! NSManagedObject
let keys = Array(match.entity.attributesByName.keys)
let dict = match.dictionaryWithValuesForKeys(keys)
debugPrint(dict)
let filePath : String = String(format: dict["photopath"]! as AnyObject as! String)
self.arrGallery.addObject(filePath)
}
} catch {
fatalError("Failed to fetch employees: \(error)")
}
}
)
grant create view
2)在plsql bloc中创建clob并尝试将数据加载到由32767个字符分隔数据的lob中。或者,如果您有一些IDE加载lob作为测试窗口的参数。例如PL \ SQL Developer允许它。 并使用它作为原始数据来获取某些东西。
create or replace view as
select cvs_val1,cvs_val2 ...
两种方式都是扭曲的
最后只是为了获取信息的好方法是创建外部表。如果您有权创建表并访问光盘上的某个oracle目录
,则它可以工作variable :l_clob clob;
:l_clob := 'CVS_col1, CVS_col2'... -- row1;
:l_clob := :l_clob||chr(13)||chr(10)||'CVS_col1, CVS_col2'... -- row2;
...
declare
begin
<do something with data for instance create view here>
end;
/