Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获取oracle表中的第一列?_Sql_Oracle - Fatal编程技术网

Sql 如何获取oracle表中的第一列?

Sql 如何获取oracle表中的第一列?,sql,oracle,Sql,Oracle,我需要为select查询获取oracle表中的第一列 i、 e.从表中选择第一列。我该怎么做?我没有访问SYS表的权限,即无法访问像user_tab_列这样的表。可以这样做吗?听起来您的访问权限非常有限。如果您的帐户可以访问DBMS_SQL,您可以尝试以下操作: declare lv_stat VARCHAR2(300) := 'SELECT * FROM tablename'; lv_cid integer; lv_tab DBMS_SQL.DESC_TAB; lv_cnt int; begi

我需要为select查询获取oracle表中的第一列
i、 e.从表中选择第一列。我该怎么做?我没有访问SYS表的权限,即无法访问像user_tab_列这样的表。可以这样做吗?

听起来您的访问权限非常有限。如果您的帐户可以访问DBMS_SQL,您可以尝试以下操作:

declare
lv_stat VARCHAR2(300) := 'SELECT * FROM tablename';
lv_cid integer;
lv_tab DBMS_SQL.DESC_TAB;
lv_cnt int;
begin
  lv_cid := DBMS_SQL.OPEN_CURSOR;
  DBMS_SQL.PARSE(lv_cid,lv_stat,DBMS_SQL.NATIVE);
  DBMS_SQL.DESCRIBE_COLUMNS(lv_cid,lv_cnt,lv_tab);
  DBMS_OUTPUT.PUT_LINE('First Column is '||lv_tab(1).col_name);
  DBMS_SQL.CLOSE_CURSOR(lv_cid);
  EXCEPTION
  when others then
  DBMS_SQL.CLOSE_CURSOR(lv_cid);
end;

这可以封装到PL/SQL函数中。与DBA交谈可能更简单

您始终可以访问用户选项卡列


如果DBA试图撤销太多的内容,那么这些内容就会中断。

您在什么环境下试图实现这一点?直接SQ、PL/SQL或3GL?我不知道您想在这里归档什么。如果您使用的是sql工具,只需执行“select*from table”,然后选择您喜欢的一个。此外,您永远不应该依赖于列的“顺序”。。。它可能会随着时间的推移而改变。唯一好的方法是根据列的名称请求列。这里真正的解决方案是通过与DBA对话来访问数据字典视图。如果他们让你的生活变得困难,那么他们没有正确地完成他们的工作。有没有充分的理由不提供对这些视图的访问?就像关系数据库中的行没有固有的顺序一样,列也没有顺序。如果您的应用程序逻辑需要了解什么是“第一”列,那么您应该重新思考您的设计!