我正在尝试执行此查询;
Process process = new Process();
process.StartInfo.FileName = "Scripts\\Install.bat";
process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.UseShellExecute = false;
process.Start();
我收到了以下错误:
从命令行中的3开始出错 - 在TYPE上授予SELECT PPZ_C.BTS_BAUTEIL_STATION_INFO到PPZ_W错误报告 - ORA-00905: 缺少关键字 00905. 00000 - "缺少关键字" *原因:
*操作:
有谁知道我错过了哪个关键字?
答案 0 :(得分:3)
首先,您需要删除TYPE
。这将解决您的第一部分问题。
试试这个
Grant SELECT on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W
现在执行上述操作时,您将进一步收到错误:
ORA-02305:只有EXECUTE,DEBUG和UNDER权限才有效 类型
这意味着您无法在任何select
上授予type
。只有EXECUTE,DEBUG和UNDER权限才对类型有效。
因此,当您希望在select语句中使用EXECUTE
时,可以使用Grant EXECUTE on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W;
:
SELECT ppz_bts.na_stat_anf( PPZ_C.BTS_BAUTEIL_STATION_INFO ('','IG','12345679') ) FROM dual;
编辑: 您的select语句应为:
CREATE OR REPLACE TYPE myschema.array_t is varray(2) of number ;
---Running in My schema
SQL> select * from table(array_t('1','2'));
COLUMN_VALUE
------------
1
2
--Granted from myschema to otherschema
SQL> grant execute on myschema.array_t to othersschema ;
--Running in otherschema
SQL> select * from table(myschema.array_t('1','2'));
COLUMN_VALUE
------------
1
2
参见演示:
Failed to create the Android application <C: \ My Mobile Projects \ My_AndreamProject \ Exe \ My_Project_Android.apk>.
Command line: "C: \ Program Files \ Java \ jdk1.8.0_72 \ bin \ java.exe" "-Dorg.gradle.appname = C: \ My Mobile Projects \ My_Project_Android \ Android \ Generation" -classpath "C: \ Gradle \ lib \ gradle-launcher.jar "org.gradle.launcher.GradleMain assembleDebug -b build.gradle
Returned error:
Org.gradle.api.internal.classpath.UnknownModuleException: Can not locate JAR for 'gradle-launcher' module IN distribution directory 'C: \ gradle'.
At org.gradle.api.internal.classpath.DefaultModuleRegistry.loadModule (DefaultModuleRegistry.java:108)
At org.gradle.api.internal.classpath.DefaultModuleRegistry.getModule (DefaultModuleRegistry.java:77)
At org.gradle.api.internal.DefaultClassPathProvider.findClassPath (DefaultClassPathProvider.java:33)
At org.gradle.api.internal.DefaultClassPathRegistry.getClassPath (DefaultClassPathRegistry.java:34)
At org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit (ProcessBootstrap.java:49)
At org.gradle.launcher.bootstrap.ProcessBootstrap.run (ProcessBootstrap.java:37)
At org.gradle.launcher.GradleMain.main (GradleMain.java:23)
答案 1 :(得分:2)
当Oracle收到类型信息请求时,它会在提供请求的信息之前验证请求者是否具有该类型的EXECUTE特权。 试试这个:
Grant EXECUTE on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W;
然后尝试:
SELECT ppz_bts.na_stat_anf( PPZ_C.bts_bauteil_station_info('','IG','12345679') )
FROM dual;