Skip to Main Content

SQL Developer

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

What this table icon represent?

Blue BirdOct 24 2018 — edited Oct 25 2018

I installed HR demo tables and I noticed that icon for COUNTRIES table appear different from other tables. I was looking in SQL Dev help but I can't find anything about icons meaning. Maybe anybody know what this icon represent or why is different?

pastedImage_0.png

BB

This post has been answered by B.Delmée on Oct 24 2018
Jump to Answer

Comments

Olafur T

Hi,

Nothing there about reserved words in optional parameters. I'll explain the problem better (I probably should raise an SR)

Define a very simple GET service:

begin

  ORDS.DEFINE_MODULE(p_module_name    => 'Testing Optional Parameters',

                     p_base_path      => '/testing/',

                     p_items_per_page => 25,

                     p_status         => 'PUBLISHED',

                     p_comments       => null);

  ORDS.DEFINE_TEMPLATE(p_module_name => 'Testing Optional Parameters',

                       p_pattern     => 'simple',

                       p_priority    => 0,

                       p_etag_type   => 'HASH',

                       p_etag_query  => null,

                       p_comments    => null);

  ORDS.DEFINE_HANDLER(p_module_name    => 'Testing Optional Parameters',

                      p_pattern        => 'simple',

                      p_method         => 'GET',

                      p_source_type    => 'json/item',

                      p_items_per_page => 25,

                      p_mimes_allowed  => '',

                      p_comments       => null,

                      p_source         => 'select sysdate from dual');

  commit;

end;

Testing with no parameters:

curl http://localhost:8080/ords/ordstest/testing/simple

{"sysdate":"2018-10-25T15:48:46Z","links":[{"rel":"collection","href":"http://localhost:8080/ords/ordstest/testing/"}]}

Testing with some optional parameter:

curl http://localhost:8080/ords/ordstest/testing/simple?p=123

{"sysdate":"2018-10-25T15:48:46Z","links":[{"rel":"collection","href":"http://localhost:8080/ords/ordstest/testing/"}]}

Testing with "q" as a parameter, no change to the service:

curl http://localhost:8080/ords/ordstest/testing/simple?q=123

results in 400 error

BadRequestException [statusCode=400, reasons=[]]

at oracle.dbtools.rest.resource.jdbc.JDBCResourcesProvider.queryStatement(JDBCResourcesProvider.java:316)

at oracle.dbtools.rest.resource.jdbc.JDBCResourcesProvider.query(JDBCResourcesProvider.java:266)

at oracle.dbtools.rest.resource.generator.json.JSONResourceGeneratorBase.service(JSONResourceGeneratorBase.java:66)

at oracle.dbtools.rest.resource.generator.ResourceGeneratorsProvider.generate(ResourceGeneratorsProvider.java:99)

at oracle.dbtools.rest.resource.modules.ModulesDispatcherDelegate.service(ModulesDispatcherDelegate.java:132)

at oracle.dbtools.rest.resource.modules.ModulesDispatcherDelegate.access$100(ModulesDispatcherDelegate.java:26)

at oracle.dbtools.rest.resource.modules.ModulesDispatcherDelegate$GetDispatcher.doGet(ModulesDispatcherDelegate.java:174)

at oracle.dbtools.http.etags.EntityTagsProvider.etag(EntityTagsProvider.java:114)

at oracle.dbtools.rest.resource.modules.ModulesDispatcherDelegate.service(ModulesDispatcherDelegate.java:58)

at oracle.dbtools.rest.resource.jdbc.JDBCResourceDispatcher.service(JDBCResourceDispatcher.java:82)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at oracle.dbtools.http.servlet.DispatchableServletBase.service(DispatchableServletBase.java:58)

at oracle.dbtools.rest.resource.cache.CachedResourceDispatcher.service(CachedResourceDispatcher.java:59)

at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:143)

at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:243)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73)

at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:90)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:68)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:66)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:71)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.auth.AuthenticationFilter.authenticate(AuthenticationFilter.java:101)

at oracle.dbtools.http.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:64)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.url.mapping.RequestMapperImpl.doFilter(RequestMapperImpl.java:161)

at oracle.dbtools.url.mapping.URLMappingBase.doFilter(URLMappingBase.java:96)

at oracle.dbtools.url.mapping.filter.URLMappingFilter.doFilter(URLMappingFilter.java:127)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.auth.external.ExternalSessionFilter.doFilter(ExternalSessionFilter.java:59)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.rt.authentication.apex.ApexSessionQueryRewriteFilter.doFilter(ApexSessionQueryRewriteFilter.java:58)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:83)

at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.filters.AbsoluteLocationFilter.doFilter(AbsoluteLocationFilter.java:65)

at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:85)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.secure.ForceHttpsFilter.doFilter(ForceHttpsFilter.java:74)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.auth.ForceAuthFilter.doFilter(ForceAuthFilter.java:44)

at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

at oracle.dbtools.http.filters.Filters.filter(Filters.java:67)

at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:82)

at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:102)

at oracle.dbtools.entrypoint.WebApplicationRequestEntryPoint.service(WebApplicationRequestEntryPoint.java:50)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

Caused by: oracle.dbtools.query.filtering.impl.FilterSyntaxException: oracle.dbtools.json.JSONParserException: Expected one of: <<{,[>> but got: <<1>>

at oracle.dbtools.query.filtering.impl.ClauseBuilderProvider.filterQuery(ClauseBuilderProvider.java:77)

at oracle.dbtools.rest.resource.jdbc.JDBCResourcesProvider.queryStatement(JDBCResourcesProvider.java:290)

... 84 more

Caused by: oracle.dbtools.json.JSONParserException: Expected one of: <<{,[>> but got: <<1>>

at oracle.dbtools.json.JSONParser.error(JSONParser.java:38)

at oracle.dbtools.json.JSONParserImpl.objectOrArray(JSONParserImpl.java:204)

at oracle.dbtools.json.JSONParserImpl.next(JSONParserImpl.java:54)

at oracle.dbtools.json.JSONReaderImpl.advance(JSONReaderImpl.java:41)

at oracle.dbtools.json.JSONReaderImpl.advance(JSONReaderImpl.java:12)

at oracle.dbtools.common.util.AbstractIterator._advance(AbstractIterator.java:140)

at oracle.dbtools.common.util.AbstractIterator.start(AbstractIterator.java:153)

at oracle.dbtools.common.util.AbstractIterator.hasNext(AbstractIterator.java:79)

at oracle.dbtools.json.objects.JSONObjectsProvider.read(JSONObjectsProvider.java:111)

at oracle.dbtools.json.objects.JSONObjectsProvider.read(JSONObjectsProvider.java:86)

at oracle.dbtools.query.filtering.impl.ClauseBuilderProvider.filterQuery(ClauseBuilderProvider.java:63)

... 85 more

Pierre Yotti

That is what you need here

https://docs.oracle.com/cd/E56351_01/doc.30/e87809/developing-REST-applications.htm#GUID-091748F8-3D14-402B-9310-25E6A9116B47

That is why you had that error "Caused by: oracle.dbtools.query.filtering.impl.FilterSyntaxException: oracle.dbtools.json.JSONParserException: Expected one of: <<{,[>> but got: <<1>>"

- {,[ : expected a json object but get a value

Pierre Yotti
Answer

3.2.5.2 Filtering in Queries

This section describes and provides examples of filtering in queries against REST-enabled tables and views.

Filtering is the process of limiting a collection resource by using a per-request dynamic filter definition across multiple page resources, where each page contains a subset of items found in the complete collection. Filtering enables efficient traversal of large collections.

To filter in a query, include the parameter q=FilterObject, where FilterObject is a JSON object that represents the custom selection and sorting to be applied to the resource. For example, assume the following resource:

https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/18.3/aelig/developing-REST-applications.html#GUID-0…

https://docs.oracle.com/cd/E56351_01/doc.30/e87809/developing-REST-applications.htm#GUID-091748F8-3D14-402B-9310-25E6A91…

https://stackoverflow.com/questions/50408450/how-to-use-clause-where-in-in-apex-ords-rest-api/50453786#50453786

Marked as Answer by Olafur T · Sep 27 2020
Olafur T

ah, thanks.

That explains it. So "q" is really a reserved parameter even though it has no purpose in a defined service only for rest enabled objects like tables or views. (only using ORDS for user defined rest services not rest enabled objects)

Ok, so there is no way for me to simply switch my old services with ORDS using the parameter "q", unless I do some fiddling with nginx rewrite rules.

Best regards

Olafur

1 - 5

Post Details

Added on Oct 24 2018
4 comments
724 views